web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Microsoft Dynamics AX (Archived)

Movement Journal with Multiple Lines

(0) ShareShare
ReportReport
Posted on by 371

Hello, want to create a Movement Journal with multiple lines using x++ code..pls

*This post is locked for comments

I have the same question (0)
  • Suggested answer
    Community Member Profile Picture
    on at

    You would need InventJournalTable, InventJournalTrans and JournalCheckPost to use to create journal header, lines and post it.

  • Suggested answer
    Pravasti AK Profile Picture
    2,985 on at

    Hi Vinay,

    static void CreateInventJournal(Args _args)

    {

          InventJournalTable inventJournalTable;

          InventJournalTrans inventJournalTrans;

          InventJournalName inventJournalName;

          InventDim inventDim;

          JournalCheckPost journalCheckPost;

    //Below code creates journal header

          inventJournalTable.clear();

          inventJournalName = InventJournalName::standardJournalName(InventJournalType::Movement);

          inventJournalTable.initFromInventJournalName(InventJournalName::find(inventJournalName ));

          inventJournalTable.insert();

    //Below code creates journal lines

          inventJournalTrans.clear();

          inventJournalTrans.initFromInventJournalTable(inventJournalTable);

          inventJournalTrans.TransDate = systemDateGet();

          inventJournalTrans.ItemId = "000004";

          inventJournalTrans.Qty = 100;

          inventDim.InventSiteId = '12';

          inventDim.InventLocationId = '1201';

          inventDim.wMSLocationId = 'BULK-001';

          inventJournalTrans.InventDimId = inventDim::findOrCreate(inventDim).inventDimId;

          inventJournalTrans.insert();

    }

  • CU02060633-1 Profile Picture
    371 on at

    @Rahul Mohta..... can you just give me the hint of the code to write in it

  • CU02060633-1 Profile Picture
    371 on at

    @Kavitha Rajan..its for the single line how to write for the multiple lines

  • Suggested answer
    Pravasti AK Profile Picture
    2,985 on at

    Hi Vinay,

    I think it will help u better,

    static void CON_PeriodicJournal_Multiplelines(Args _args)

    {

       LedgerJournalTrans          ledgerJournalTrans,LedgerJournaltrans1;

       LedgerJournalTable          ledgerJournalTable;

       ledgerJournalname           ledgerJournalname;

       NumberSeq                   numberSeq;

       NumberSequenceTable         numSeqTable;

       container                   cont1,cont2,ledgerDimension,offSetAcctPattern;

       DimensionDynamicAccount     ledgerDim, offsetledgerDim;

       ledgerJournalCheckPost      ledgerJournalCheckPost;

       int                         cnt;

       DimensionDefault            DimensionDefault;

       LedgerJournalPeriodicCopy   LedgerJournalPeriodicCopy;

       CopyMove                    CopyMove;

       LedgerJournalId             periodicLedgerJournalId,genjourLedgerJournalId;

       LedgerJournalACType         periodicACType,periodicOffSetACType;

       DimensionDynamicAccount     periodicAccount,periodicoffsetAccount ;

       AmountCurCredit             credit;

       RecId                       RecId;

        // find ledgerjournalname record

       select firstonly   ledgerjournalname where LedgerJournalName.JournalName =='PerJrn';

       //create ledger journal table

       ledgerjournaltable.journalname      = ledgerjournalname.journalname ;

       ledgerjournaltable.initfromledgerjournalname();

       ledgerjournaltable.name             = " May Periodic Journal";

       ledgerJournalTable.insert();

      //Header Created

       /////Line 1 Created

       //ledgerJournalTable = LedgerJournalTable::find("00553");

         try

           {

               ttsbegin;

               ledgerJournalTrans.clear();

               ledgerJournalTrans.initValue();

               ledgerJournalTrans.JournalNum   = ledgerJournalTable.JournalNum;

               ledgerJournalTrans.TransDate    = today();

               ledgerJournalName = ledgerJournalName::find(ledgerJournalTable.JournalName);

               periodicLedgerJournalId = ledgerJournalTrans.JournalNum ;

               select firstOnly numSeqTable

                   where numSeqTable.RecId  == ledgerJournalName.NumberSequenceTable;

               if (numSeqTable)

               {

                   numberseq = numberseq::newGetVoucherFromCode(numSeqTable.NumberSequence);

                   ledgerJournalTrans.voucher = numberseq.voucher();

               }

               //ledgerJournalTrans.Voucher              = voucher;

               ledgerJournalTrans.AccountType          = LedgerJournalACType::Vend;

               ledgerJournalTrans.OffsetAccountType = LedgerJournalACType::Ledger;

               // Main account dimensions

               periodicACType = ledgerJournalTrans.AccountType;

               periodicOffSetACType = ledgerJournalTrans.OffsetAccountType;

               cont1=conNull();

               cont2=conNull();

               ledgerDimension =conNull();

               cont2 += ['BusinessUnit','082','Department','023'];

               cnt =2;

               if(ledgerJournalTrans.AccountType  == LedgerJournalACType::Ledger)

               {

                   cont1+=['MainAccount','112100',2];

                   cont1+=cont2;

                   ledgerDim=AxdDimensionUtil::getLedgerAccountId(cont1);

                   if(ledgerDim==0)

                   {

                           offSetAcctPattern = ['112100','112100'];

                           ledgerDim = AxdDimensionUtil::getLedgerAccountId(offSetAcctPattern);

                   }

                   ledgerJournalTrans.LedgerDimension  = ledgerDim;

               }

               else

               {

                   ledgerDim = DimensionStorage::getDynamicAccount( '000021',ledgerJournalTrans.AccountType);

                   ledgerJournalTrans.LedgerDimension  = ledgerDim;

                   ledgerDimension +=cnt;

                   ledgerDimension +=cont2;

                   DimensionDefault = AxdDimensionUtil::getDimensionAttributeValueSetId(ledgerDimension);

                   ledgerJournalTrans.DefaultDimension = DimensionDefault;

               }

               periodicAccount = ledgerDim;

               cont1=conNull();

               cont2=conNull();

               ledgerDimension =conNull();

               cont2 += ['BusinessUnit','082','Department','023'];

               cnt =2;

               if(ledgerJournalTrans.OffsetAccountType  == LedgerJournalACType::Ledger)

               {

                   cont1+=['MainAccount','112140',2];

                   cont1+=cont2;

                   offsetledgerDim=AxdDimensionUtil::getLedgerAccountId(cont1);

                   if(ledgerDim==0)

                   {

                           offSetAcctPattern = ['112140','112140'];

                           offsetledgerDim = AxdDimensionUtil::getLedgerAccountId(offSetAcctPattern);

                   }

                   ledgerJournalTrans.OffsetLedgerDimension  = offsetledgerDim;

               }

               else

               {

                   offsetledgerDim = DimensionStorage::getDynamicAccount( '000021',ledgerJournalTrans.AccountType);

                   ledgerJournalTrans.OffsetLedgerDimension = offsetledgerDim;

                   ledgerDimension +=cnt;

                   ledgerDimension +=cont2;

                   DimensionDefault = AxdDimensionUtil::getDimensionAttributeValueSetId(ledgerDimension);

                   ledgerJournalTrans.OffsetDefaultDimension = DimensionDefault;

               }

               periodicoffsetAccount = offsetledgerDim;

               ledgerJournalTrans.CurrencyCode          = "USD";

               ledgerJournalTrans.AmountCurCredit       = 6000;

               ledgerJournalTrans.FreqCode              = PeriodUnit::Month;

               ledgerJournalTrans.FreqValue             = 1;

               credit = ledgerJournalTrans.AmountCurCredit;

               if (ledgerJournalTrans.validateWrite())

               {

                   ledgerJournalTrans.insert();

               }

               ttscommit;

           }

           catch(Exception::Error)

           {

               info(strFmt('Catched an error in row: %1',ledgerJournalTrans.OffsetDefaultDimension));

           }

           info(strFmt('Periodic journal inserted %1',ledgerJournalTable.JournalNum));

           ////Line 2 Created

           try

           {

               ttsbegin;

               ledgerJournalTrans.clear();

               ledgerJournalTrans.initValue();

               ledgerJournalTrans.JournalNum   = ledgerJournalTable.JournalNum;

               ledgerJournalTrans.TransDate    = today();

               ledgerJournalName = ledgerJournalName::find(ledgerJournalTable.JournalName);

               periodicLedgerJournalId = ledgerJournalTrans.JournalNum ;

               select firstOnly numSeqTable

                   where numSeqTable.RecId  == ledgerJournalName.NumberSequenceTable;

               if (numSeqTable)

               {

                   numberseq = numberseq::newGetVoucherFromCode(numSeqTable.NumberSequence);

                   ledgerJournalTrans.voucher = numberseq.voucher();

               }

               //ledgerJournalTrans.Voucher              = voucher;

               ledgerJournalTrans.AccountType          = LedgerJournalACType::Vend;

               ledgerJournalTrans.OffsetAccountType = LedgerJournalACType::Ledger;

               // Main account dimensions

               periodicACType = ledgerJournalTrans.AccountType;

               periodicOffSetACType = ledgerJournalTrans.OffsetAccountType;

               cont1=conNull();

               cont2=conNull();

               ledgerDimension =conNull();

               cont2 += ['BusinessUnit','082','Department','023'];

               cnt =2;

               if(ledgerJournalTrans.AccountType  == LedgerJournalACType::Ledger)

               {

                   cont1+=['MainAccount','112100',2];

                   cont1+=cont2;

                   ledgerDim=AxdDimensionUtil::getLedgerAccountId(cont1);

                   if(ledgerDim==0)

                   {

                           offSetAcctPattern = ['112100','112100'];

                           ledgerDim = AxdDimensionUtil::getLedgerAccountId(offSetAcctPattern);

                   }

                   ledgerJournalTrans.LedgerDimension  = ledgerDim;

               }

               else

               {

                   ledgerDim = DimensionStorage::getDynamicAccount( '000021',ledgerJournalTrans.AccountType);

                   ledgerJournalTrans.LedgerDimension  = ledgerDim;

                   ledgerDimension +=cnt;

                   ledgerDimension +=cont2;

                   DimensionDefault = AxdDimensionUtil::getDimensionAttributeValueSetId(ledgerDimension);

                   ledgerJournalTrans.DefaultDimension = DimensionDefault;

               }

               periodicAccount = ledgerDim;

               cont1=conNull();

               cont2=conNull();

               ledgerDimension =conNull();

               cont2 += ['BusinessUnit','082','Department','023'];

               cnt =2;

               if(ledgerJournalTrans.OffsetAccountType  == LedgerJournalACType::Ledger)

               {

                   cont1+=['MainAccount','112140',2];

                   cont1+=cont2;

                   offsetledgerDim=AxdDimensionUtil::getLedgerAccountId(cont1);

                   if(ledgerDim==0)

                   {

                           offSetAcctPattern = ['112140','112140'];

                           offsetledgerDim = AxdDimensionUtil::getLedgerAccountId(offSetAcctPattern);

                   }

                   ledgerJournalTrans.OffsetLedgerDimension  = offsetledgerDim;

               }

               else

               {

                   offsetledgerDim = DimensionStorage::getDynamicAccount( '000021',ledgerJournalTrans.AccountType);

                   ledgerJournalTrans.OffsetLedgerDimension = offsetledgerDim;

                   ledgerDimension +=cnt;

                   ledgerDimension +=cont2;

                   DimensionDefault = AxdDimensionUtil::getDimensionAttributeValueSetId(ledgerDimension);

                   ledgerJournalTrans.OffsetDefaultDimension = DimensionDefault;

               }

               periodicoffsetAccount = offsetledgerDim;

               ledgerJournalTrans.CurrencyCode          = "USD";

               ledgerJournalTrans.AmountCurCredit       = 4000;

               ledgerJournalTrans.FreqCode              = PeriodUnit::Month;

               ledgerJournalTrans.FreqValue             = 1;

               credit = ledgerJournalTrans.AmountCurCredit;

               if (ledgerJournalTrans.validateWrite())

               {

                   ledgerJournalTrans.insert();

               }

               ttscommit;

           }

           catch(Exception::Error)

           {

               info(strFmt('Catched an error in row: %1',ledgerJournalTrans.OffsetDefaultDimension));

           }

    }

  • CU02060633-1 Profile Picture
    371 on at

    thanx @Kavitha Rajan.. i will try to be do in movement journal........

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Season of Sharing Community Challenge Launch!

Jump in, show your community spirit, and win prizes!

Women in Power Builds Momentum

Expanding mentorship, skilling, and AI innovation

Congratulations to the May Top 10 Community Leaders

These are the community rock stars!

Leaderboard > 🔒一 Microsoft Dynamics AX (Archived)

#1
Sanhthosh.Kumar.K Profile Picture

Sanhthosh.Kumar.K 2

#2
Raed Salah Bzour Profile Picture

Raed Salah Bzour 1

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans