Skip to main content

Calling the LedgerGeneralJournal Service in AX 2012

GeneralJournalServiceClient client = new GeneralJournalServiceClient();
CallContext context = new CallContext();
context.Company =  "ceu";

AxdLedgerGeneralJournal journal = new AxdLedgerGeneralJournal();
AxdEntity_LedgerJournalTable journalHeader = new AxdEntity_LedgerJournalTable();
journalHeader.JournalName = "GenJrn";
AxdEntity_LedgerJournalTrans journalLine = new AxdEntity_LedgerJournalTrans();
journalLine.AccountType = AxdEnum_LedgerJournalACType.Ledger;
journalLine.AccountTypeSpecified = true;
journalLine.Company = "ceu";
AxdType_MultiTypeAccount account = new AxdType_MultiTypeAccount();
account.Account = "131100";
account.DisplayValue = "131100-OU_2311-OU_3569-Customer visit";
AxdType_DimensionAttributeValue dimValue1 = new AxdType_DimensionAttributeValue();
dimValue1.Name = "Department";
dimValue1.Value = "OU_2311";
AxdType_DimensionAttributeValue dimValue2 = new AxdType_DimensionAttributeValue();
dimValue2.Name = "CostCenter";
dimValue2.Value = "OU_3569";
AxdType_DimensionAttributeValue dimValue3 = new AxdType_DimensionAttributeValue();
dimValue3.Name = "ExpensePurpose";
dimValue3.Value = "Customer visit";
account.Values = new AxdType_DimensionAttributeValue[3] { dimValue1, dimValue2, dimValue3 };
journalLine.LedgerDimension = account;
journalLine.AmountCurDebit = 120;
journalLine.AmountCurDebitSpecified = true;
journalHeader.LedgerJournalTrans = new AxdEntity_LedgerJournalTrans[1] { journalLine };
journal.LedgerJournalTable = new AxdEntity_LedgerJournalTable[1] { journalHeader };

try
           {
                client.create(context, journal);
            }
catch (Exception e)
            {
            string error = e.Message;
            }

Popular posts from this blog

Dynamics Axapta: Sales Orders & Business Connector

Well, again folllowing my same idea of writting close to nothing and pasting code, I'll paste in some code to create a sales order from some basic data and the invoice it. I'll try to explain more in the future. AxaptaObject axSalesTable = ax.CreateAxaptaObject("AxSalesTable"); AxaptaRecord rcInventDim = ax.CreateAxaptaRecord("InventDim"); AxaptaRecord rcCustTable = ax.CreateAxaptaRecord("CustTable"); rcCustTable.ExecuteStmt("select * from %1 where %1.AccountNum == '" + MySalesOrderObject.CustAccount + "'"); if (MySalesOrderObject.CurrencyCode.Trim().Length == 0) MySalesOrderObject.CurrencyCode = rcCustTable.get_Field("Currency").ToString().Trim(); string sTaxGroup = rcCustTable.get_Field("taxgroup").ToString().Trim(); //set header level fields axSalesTable.Call("parmSalesName", MySalesOrderObject.SalesName.Trim()); axSalesTable.Call("parmCustAccount", M

Passing values between form and class

Class name is EmplDuplication and Form is EmplTable . void clicked() {    MenuFunction mf;    args args = new Args();    ;     args.record(EmplTable);     mf = new menufunction(identifierstr(EmplDuplication), MenuItemType::Action); mf.run(args); } Meanwhile, in the main() method of the EmplDuplication class, we need to put this Axapta x++ code to get the datasource: static void main(Args args) {     EmplDuplication EmplDuplication; EmplTable localEmplTable; ;     if(args.record().TableId == tablenum(EmplTable)) localEmplTable = args.record();     ... }