首页 > 其他分享 >import CSV with X++ for Dynamics 365 FO

import CSV with X++ for Dynamics 365 FO

时间:2023-05-11 18:55:41浏览次数:163  
标签:Exception fileUpload ++ colorCode color file rec import 365

/// <summary>

/// import color code

/// </summary>

class CFSImportColorCode

{

    /// <summary>

    /// main

    /// </summary>

    /// <param name = “_args”>_args</param>

    public static void main(Args _args)

    {

        AsciiStreamIo                       file;

        Array                               fileLines;

        FileUploadTemporaryStorageResult    fileUpload;

        CFSEcoResColorCode                  colorCode;

        CFSImportColorCode                  importColorCode = new CFSImportColorCode();

        Counter                             counter = 0;

        EcoResColorName                     color;

        #OCCRetryCount

        try

        {

            //Upload a file

            fileUpload  = File::GetFileFromUser() as FileUploadTemporaryStorageResult;

            file        = AsciiStreamIo::constructForRead(fileUpload.openResult());

            if (file)

            {

                if (file.status())

                {

                    throw error(“@SYS52680”);

                }

                file.inFieldDelimiter(‘;’); //separator

                file.inRecordDelimiter(‘\r\n’);

            }

            //Read a CSV File

            container rec;

            ttsbegin;

            while (!file.status())

            {

                counter++;

                rec = file.read();

                if (conLen(rec))

                {

                    color = conPeek(rec, 2);

                    colorCode = CFSEcoResColorCode::find(color);

                    if(!colorCode.RecId)

                    {

                        colorCode.clear();

                        colorCode.Name  = color;

                        colorCode.Code  = conPeek(rec, 1);

                        colorCode.insert();

                    }

                }

            }

            ttscommit;

            info(“Operation complete.”);

        }

        catch (Exception::Deadlock)

        {

            retry;

        }

        catch (Exception::UpdateConflict)

        {

            if (appl.ttsLevel() == 0)

            {

                if (xSession::currentRetryCount() >= #RetryNum)

                {

                    throw Exception::UpdateConflictNotRecovered;

                }

                else

                {

                    retry;

                }

            }

            else

            {

                throw Exception::UpdateConflict;

            }

        }

    }

}

标签:Exception,fileUpload,++,colorCode,color,file,rec,import,365
From: https://www.cnblogs.com/lingdanglfw/p/17391929.html

相关文章

  • C++
    复数加减(运算符重载)声明一个复数类CComplex(类私有数据成员为double型的real和image)定义构造函数,用于指定复数的实部与虚部。重载<<运算符,以格式real+imagei的格式输出当前对象(当虚部为非负数时,实部虚部中间用+号连接,当虚部为负数时,实部虚部用-号连接:如3+4i,3-4i,3+0i)。重载+运......
  • C/C++模拟银行排队叫号系统[2023-05-11]
    C/C++模拟银行排队叫号系统[2023-05-11]2、模拟银行排队叫号系统(难度等级A)[问题描述]模拟实现银行的排队叫号系统。[基本要求](1)假定银行上午9点开门,下午5点关门,期间每个小时的客流量不超过35人;(2)每个客户的基本信息包括:到达银行时间、业务需要办理的时长。这两项数据均......
  • 【C++学习笔记】C++ 正则表达式不完全支持零断宽言
    最近需要解析配置文件,遇到从@STARTDATA@END中提取DATA的正则,按照C#的操作,直接(?<=@START)[\W\w]?(?=@END),就能提取的,可是在C++中,regexe("(?<=@START)[\W\w]?(?=@END)")报错了,找了很多说法,最终结论:支持先行断言,不支持后行断言即:(?<=@START)和(?<!@START)。好在C++支持子匹......
  • C/C++交通咨询系统设计哈夫曼编码问题[2023-05-11]
    C/C++交通咨询系统设计哈夫曼编码问题[2023-05-11]题目三、交通咨询系统设计最短路径问题设计要求及分析:设计一个交通咨询系统,能让旅客咨询从任一个城市顶点到另一城市顶点之间的最短路径(里程)、最低花费、最少时间等问题。对于不同咨询要求,可输出城市间的路程、所需时间......
  • c++自定义工具类的定义和使用
    classlog_work{private:intlog_id_=1;intlog_level_;qnx_slog2()=default;virtual~qnx_slog2(){uninit();}public:inlinestaticlog_work&get_log(){staticqnx_slog2slog2_instance;returnslog2_instance;}......
  • c++模版多参数的递归用法--自定义log
    #include<iostream>#include<sstream>#include<string>#include<tuple>#include<type_traits>template<typenameT>voidprint_impl(std::ostringstream&os,constchar*format,T&&arg){while(*form......
  • C++ - 崩溃定位用dump和pdb文件
    目的利用dump和pdb文件来快速定位程序崩溃的地方步骤1、写一个简单的崩溃程序sample.cpp1classTest{2public:3voidsay(){4inta=0;5intb=10/a;6}7};89int_tmain(intargc,_TCHAR*argv[])10{11Testt;......
  • 真机调试可以正常安装,但是不能正常运行,出现错误:couldn‘t find “libc++_shared.so“
    在迁移代码的时候,发现代码可以在模拟器上运行,但是无法在真机上面运行,最后经过挨个的排查,最终发现是ndk的问题。在app的build.gradle中的ndk缺少了匹配的实体机类型,然后加了一下'x86','armeabi-v7a','armeabi','armabi-v7a','x86_64','arm64-v8a','mips','mips64......
  • 总结:C++引用(Reference)
    声明:资料整理自网络资源,未能全部注明引用来源,如有侵权请联系。一、基本概念引用(Reference)是C++相对于C语言的又一个扩充。引用变量是一个别名,即某个已存在变量的另一个名字。声明方法:类型标识符&引用名=目标变量名;inta;//定义变量aint&b=a;//定义引用b,a和b表......
  • 编程打卡:C++语言程序设计
    //Node.h#ifndefNODE_H#defineNODE_H//类模板的定义template<classT>classNode{private: Node<T>*next; //指向后继结点的指针public: Tdata; //数据域 Node(constT&data,Node<T>*next=0);//构造函数 voidinsertAfter(Node<T>*p); //......