Axapta 普通期刊AIF服务可以';t类型客户的进口抵消账户-AX 2012

Axapta 普通期刊AIF服务可以';t类型客户的进口抵消账户-AX 2012,axapta,ax,dynamics-ax-2012,aif,Axapta,Ax,Dynamics Ax 2012,Aif,我正在尝试使用AIF将数据从CSV文件导入AX 2012,并通过C#Web应用程序使用Web服务 我试图提取的数据来自: 我正在使用的web服务是。Web应用程序中用于使用Web服务的代码是(假设它正在解析string[]的CSV文件,而ImportingHelper.EnumUtils.Parse正在解析为枚举类型): 公共类导入日志:导入类 { 内部静态int TransDateIndex=0; 内部静态int AccountTypeIndex=2; 内部静态int-LedgerDimen

我正在尝试使用AIF将数据从CSV文件导入AX 2012,并通过C#Web应用程序使用Web服务

我试图提取的数据来自:

我正在使用的web服务是。Web应用程序中用于使用Web服务的代码是(假设它正在解析
string[]
的CSV文件,而
ImportingHelper.EnumUtils.Parse
正在解析为枚举类型):

公共类导入日志:导入类
{
内部静态int TransDateIndex=0;
内部静态int AccountTypeIndex=2;
内部静态int-LedgerDimensionMainAccountIndex=3;
内部静态int-LedgerDimensionOnDisplayValueIndex=4;
内部静态int-LedgerDimensionValuesIndex=5;
内部静态int DescriptionOnLineIndex=6;
内部静态int DebitIndex=7;
内部静态积分指数=8;
内部静态int CurrencyIndex=9;
内部静态int OffsetAccountTypeIndex=10;
内部静态int OffsetMainAccountIndex=11;
内部静态int OffsetDisplayAccountIndex=12;
内部静态int OffsetAccountValuesIndex=13;
内部静态int JournalNameIndex=14;
内部静态int DescriptionHeaderIndex=15;
内部静态公司指数=16;
内部静态int OffsetCompanyIndex=16;
公司索引中的内部静态int=16;
内部静态int-ActiveIndex=3;
内部静态int ApproveIndex=4;
内部静态int-FixedOffsetAccountIndex=5;
内部静态int ApprovalWorkflowIndex=8;
内部静态int DetailLevelIndex=12;
内部静态int FeesPostingIndex=13;
内部静态int-LinesLimitIndex=14;
内部静态int PrivateForUserGroupIndex=15;
内部静态int VoucherSeriesIndex=16;
内部静态int NewVoucherIndex=17;
内部静态int NumberLocationAtPostingIndex=18;
内部静态int DocumentIndex=19;
内部静态int FixedRateIndex=20;
内部静态int值包括Alexaxindex=22;
内部静态int HidesalTaxFieldsJournalEntryFormIndex=23;
内部静态int语言索引=27;
内部静态int DescriptionTransIndex=30;
public void CreateFromCSVFile()
{
抛出新的NotImplementedException();
}
public void CreateFromCSVFile(System.IO.Stream fileStream)
{
GeneralJournalServiceClient GeneralJournalServiceClient=新的GeneralJournalServiceClient();
尝试
{
List JournalData=Helper.ImportCSVFile.ParseCSVFile(fileStream,true);
foreach(JournalData中的字符串[]日志)
{
CallContext CallContext=new CallContext();
callContext.Company=journal[CompanyIndex];
callContext.Language=“en-gb”;
AxdLedgerGeneralJournal日记账属性=新的AxdLedgerGeneralJournal();
AxdEntity_ledgerjournalheader=新的账本服务。AxdEntity_LedgerJournalTable();
journalHeader.JournalName=日记[JournalNameIndex].Trim();
journalHeader.Name=journal[DescriptionHeaderIndex].Trim();
if(日记账[DetailLevelIndex]!=String.Empty)
{
journalHeader.DetailSummaryPostingSpecified=true;
AxdEnum_DetailSummary?parsingtailsummary=ImportingHelper.EnumUtils.Parse(“细节”);
if(parsingDetailSummary!=null)
journalHeader.DetailSummaryPosting=(AxdEnum\u DetailSummary)parsingDetailSummary;
}
其他的
journalHeader.DetailSummaryPostingSpecified=false;
journalHeader.DetailSummaryPosting=AxdEnum\u DetailSummary.Detail;
AxdEntity_LedgerJournalTrans日记行=新AxdEntity_LedgerJournalTrans();
if(日记账[TransDateIndex]!=null)
{
journalLine.TransDateSpecified=true;
journalLine.TransDate=DateTime.Parse(journal[TransDateIndex]);
}
其他的
journalLine.TransDateSpecified=false;
如果(日记账[AccountTypeIndex]!=null)
{
journalLine.AccountTypeSpecified=true;
AxdEnum_LedgerJournalACType?parsingLedgerJournalACType=ImportingHelper.EnumUtils.Parse(日记账[AccountTypeIndex]);
如果(parsingLedgerJournalACType!=null)
journalLine.AccountType=(AxdEnum_LedgerJournalACType)parsingLedgerJournalACType;
}
其他的
journalLine.AccountTypeSpecified=false;
AxdType\u MultiTypeAccount分类账rdiDimension=新的AxdType\u MultiTypeAccount();
LedgerDimension.DisplayValue=日记账[LedgerDimensionOnDisplayValue索引];
账户=日记账[LedgerDimensionMainAccountIndex];
journalLine.LedgerDimension=LedgerDimension;
journalLine.Txt=日志[DescriptionOnLineIndex];
if(日记账[DebitIndex]!=String.Empty)
{
journalLine.AmountCurDebitSpecified=true;
journalLine.AmountCurDebit=Decimal.Parse(日记账[debitIndex]);
}
public class ImportingJournals : ImportClass
{

           internal static int TransDateIndex = 0;
           internal static int AccountTypeIndex = 2;
           internal static int LedgerDimensionMainAccountIndex = 3;
           internal static int LedgerDimensionOnDisplayValueIndex = 4;
           internal static int LedgerDimensionValuesIndex = 5;
           internal static int DescriptionOnLineIndex = 6;
           internal static int DebittIndex = 7;   
           internal static int CreditIndex = 8;
           internal static int CurrencyIndex = 9;
           internal static int OffsetAccountTypeIndex = 10;
           internal static int OffsetMainAccountIndex = 11;  
           internal static int OffsetDisplayAccountIndex = 12;
           internal static int OffsetAccountValuesIndex = 13;
           internal static int JournalNameIndex = 14;
           internal static int DescriptionHeaderIndex = 15;
           internal static int CompanyIndex = 16;
           internal static int OffsetCompanyIndex = 16;
           internal static int FromCompanyIndex = 16;

           internal static int  ActiveIndex = 3;
           internal static int  ApproveIndex = 4;
           internal static int  FixedOffsetAccountIndex = 5;


           internal static int  ApprovalWorkflowIndex = 8;
           internal static int DetailLevelIndex = 12;
           internal static int FeesPostingIndex = 13;
           internal static int LinesLimitIndex = 14;
           internal static int PrivateForUserGroupIndex = 15;
           internal static int VoucherSeriesIndex = 16;
           internal static int NewVoucherIndex = 17;
           internal static int NumberAllocationAtPostingIndex = 18;
           internal static int DocumentIndex = 19; 
           internal static int FixedRateIndex = 20;

           internal static int AmountIncludedSalesTaxIndex = 22;
           internal static int HideSalesTaxFieldsInJournalEntryFormIndex = 23;


           internal static int LanguageIndex = 27;


           internal static int DescriptionTransIndex = 30;




        public void CreateFromCSVFile()
        {
            throw new NotImplementedException();
        }

        public void CreateFromCSVFile(System.IO.Stream fileStream)
        {

            GeneralJournalServiceClient generalJournalServiceClient = new GeneralJournalServiceClient();




            try
            {
                List<string[]> JournalData = Helper.ImportCSVFile.ParseCSVFile(fileStream, true);

                foreach (string[] journal in JournalData)
                {
                    CallContext callContext = new CallContext();

                    callContext.Company = journal[CompanyIndex];
                    callContext.Language = "en-gb";

                    AxdLedgerGeneralJournal journalEntity = new AxdLedgerGeneralJournal();

                    AxdEntity_LedgerJournalTable journalHeader = new LedgerServices.AxdEntity_LedgerJournalTable();


                    journalHeader.JournalName = journal[JournalNameIndex].Trim();
                    journalHeader.Name = journal[DescriptionHeaderIndex].Trim();

                    if (journal[DetailLevelIndex] != String.Empty)
                    {
                        journalHeader.DetailSummaryPostingSpecified = true;
                        AxdEnum_DetailSummary? parsingDetailSummary = ImportingHelper.EnumUtils.Parse<AxdEnum_DetailSummary>("Detail");
                        if (parsingDetailSummary != null)
                            journalHeader.DetailSummaryPosting = (AxdEnum_DetailSummary) parsingDetailSummary;

                    }
                    else
                        journalHeader.DetailSummaryPostingSpecified = false;

                    journalHeader.DetailSummaryPosting = AxdEnum_DetailSummary.Detail;

                    AxdEntity_LedgerJournalTrans journalLine = new AxdEntity_LedgerJournalTrans();

                    if (journal[TransDateIndex] != null)
                    {
                        journalLine.TransDateSpecified = true;
                        journalLine.TransDate = DateTime.Parse(journal[TransDateIndex]);
                    }
                    else
                        journalLine.TransDateSpecified = false;

                    if (journal[AccountTypeIndex] != null)
                    {
                        journalLine.AccountTypeSpecified = true;

                        AxdEnum_LedgerJournalACType? parsingLedgerJournalACType = ImportingHelper.EnumUtils.Parse<AxdEnum_LedgerJournalACType>(journal[AccountTypeIndex]);
                        if (parsingLedgerJournalACType != null)
                            journalLine.AccountType = (AxdEnum_LedgerJournalACType)parsingLedgerJournalACType;
                    }
                    else
                        journalLine.AccountTypeSpecified = false;

                    AxdType_MultiTypeAccount LedgerDimension = new AxdType_MultiTypeAccount();


                    LedgerDimension.DisplayValue = journal[LedgerDimensionOnDisplayValueIndex];
                    LedgerDimension.Account = journal[LedgerDimensionMainAccountIndex];
                    journalLine.LedgerDimension = LedgerDimension;

                    journalLine.Txt = journal[DescriptionOnLineIndex];

                    if (journal[DebittIndex] != String.Empty)
                    {
                        journalLine.AmountCurDebitSpecified = true;
                        journalLine.AmountCurDebit = Decimal.Parse(journal[DebittIndex]);
                    }
                    else
                        journalLine.AmountCurDebitSpecified = false;

                    if (journal[CreditIndex] != String.Empty)
                    {
                        journalLine.AmountCurCreditSpecified = true;
                        journalLine.AmountCurCredit = Decimal.Parse(journal[CreditIndex]);
                    }
                    else
                        journalLine.AmountCurCreditSpecified = false;

                    if (journal[OffsetAccountTypeIndex] != String.Empty)
                    {
                        journalLine.OffsetAccountTypeSpecified = true;
                        AxdEnum_LedgerJournalACType? parsingLedgerJournalACType = ImportingHelper.EnumUtils.Parse<AxdEnum_LedgerJournalACType>(journal[OffsetAccountTypeIndex]);
                        if (parsingLedgerJournalACType != null)
                            journalLine.OffsetAccountType = (AxdEnum_LedgerJournalACType)parsingLedgerJournalACType;

                    }
                    else
                        journalLine.OffsetAccountTypeSpecified = false;

                    AxdType_MultiTypeAccount ledgerOffsetDimension = new AxdType_MultiTypeAccount();
                    ledgerOffsetDimension.Account = journal[OffsetMainAccountIndex];
                    ledgerOffsetDimension.DisplayValue = journal[OffsetDisplayAccountIndex];
                    journalLine.OffsetLedgerDimension = ledgerOffsetDimension;

                    journalLine.CurrencyCode = journal[CurrencyIndex];


                    journalLine.OffsetCompany = journal[OffsetCompanyIndex];


                    journalLine.Company = journal[FromCompanyIndex];


                    AxdEntity_LedgerJournalTrans[]  journalTransCollection =  new AxdEntity_LedgerJournalTrans[1] 
                    {
                        journalLine
                    };

                    journalHeader.LedgerJournalTrans = journalTransCollection;
                    journalEntity.LedgerJournalTable = 
                    new AxdEntity_LedgerJournalTable[1] 
                    {
                        journalHeader
                    };

     generalJournalServiceClient.create(callContext, journalEntity);
                }

            }
            catch (Exception ex)
            {
                String message = ex.Message;
            }
            finally
            {
                generalJournalServiceClient.Close();
            }
/// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.233")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/dynamics/2008/01/sharedtypes")]
    public enum AxdEnum_LedgerJournalACType {

        /// <remarks/>
        Ledger,

        /// <remarks/>
        Cust,

        /// <remarks/>
        Vend,

        /// <remarks/>
        Project,

        /// <remarks/>
        FixedAssets,

        /// <remarks/>
        Bank,
    }
 /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(IsNullable=true, Order=9)]
        public System.Nullable<AxdEnum_LedgerJournalACType> OffsetAccountType {
            get {
                return this.offsetAccountTypeField;
            }
            set {
                this.offsetAccountTypeField = value;
                this.RaisePropertyChanged("OffsetAccountType");
            }
        }
protected boolean validateOffsetAccountType()
{
    boolean isValid = true;

    switch (ledgerJournalTable.JournalType)
    {
        case LedgerJournalType::Daily :
                if (ledgerJournalTrans.OffsetAccountType != LedgerJournalACType::Ledger &&
                    ledgerJournalTrans.OffsetAccountType != LedgerJournalACType::Bank)
                {
                    if (this.isConsumerStateTracked())
                    {
                        // service limitation
                        isValid = AifFault::checkFailedLogFault("@SYS118081", #OffsetAccountTypeIsNotSupported);
                    }
                }
            break;

        default :
            break;
    }

    return isValid;
}