AX2012: Get / update data from external database

In the batch job. There is a script running
Get expense from Expense table where AX_Status not equal to processed and EXP_Status = Active.

public void select_ExpenseHead()
{
    LoginProperty loginProperty;
    OdbcConnection odbcConnection;
    Statement statement, statementUpdate;
    ResultSet resultSet;
    str sql ;
    SqlStatementExecutePermission perm;
    str             dsnStr = ACT_IntegrationParameters::findNTD().stagingDSN;
    ACT_ExpenseHead expenseHead;
    ;

    // Set the information on the ODBC.
    loginProperty = new LoginProperty();
    loginProperty.setDSN(dsnStr);

    //Create a connection to external database.
    odbcConnection = new OdbcConnection(loginProperty);

    if (odbcConnection)
    {

        sql = "Select * from EXPENSES_HEAD  where AX_Status != 'Processed' and EXP_Status = 'ACTIVE'" ;
        sql = strFmt(sql);

        //Assert permission for executing the sql string.
        perm = new SqlStatementExecutePermission(sql);
        perm.assert();

        //Prepare the sql statement.
        statement = odbcConnection.createStatement();

        resultSet = statement.executeQuery(sql);
        statement.executeQuery(sql);

        //Cause the sql statement to run,
        //then loop through each row in the result.
        ttsBegin;
        while (resultSet.next())
        {

            expenseHead.Id           = resultSet.getInt(1);
            expenseHead.Inspector    = resultSet.getString(2);
            expenseHead.EXP_NO       = resultSet.getString(3);
            expenseHead.EXP_DATE     = resultSet.getDate(4);
            expenseHead.EXP_STATUS   = resultSet.getString(5);
            expenseHead.DEPT         = resultSet.getString(6);
            expenseHead.Division     = resultSet.getString(7);
            expensehead.HKD_Total    = resultSet.getReal(12);
            expenseHead.RMB_Total    = resultSet.getReal(13);
            expenseHead.Exp_Date1    = resultSet.getDate(14);
            expenseHead.Exp_Date2    = resultSet.getDate(15);
            expenseHead.Exp_Date3    = resultSet.getDate(16);
            expenseHead.Exp_Date4    = resultSet.getDate(17);
            expenseHead.Exp_Date5    = resultSet.getDate(18);
            expenseHead.Exp_Date6    = resultSet.getDate(19);
            expenseHead.Exp_Date7    = resultSet.getDate(20);

            expenseHead.Type1        = resultSet.getString(21);
            expenseHead.Type2        = resultSet.getString(22);
            expenseHead.Type3        = resultSet.getString(23);
            expenseHead.Type4        = resultSet.getString(24);
            expenseHead.Type5        = resultSet.getString(25);
            expenseHead.Type6        = resultSet.getString(26);
            expenseHead.Type7        = resultSet.getString(27);
            expenseHead.Type8        = resultSet.getString(28);
            expenseHead.Type9        = resultSet.getString(29);
            expenseHead.Type10       = resultSet.getString(30);
            expenseHead.Type11       = resultSet.getString(31);
            expenseHead.Type12       = resultSet.getString(32);
            expenseHead.Type13       = resultSet.getString(33);
            expenseHead.Type14       = resultSet.getString(34);
            expenseHead.Type15       = resultSet.getString(35);
            expenseHead.Type16       = resultSet.getString(36);
            expenseHead.Type17       = resultSet.getString(37);
            expenseHead.Type18       = resultSet.getString(38);
            expenseHead.Type19       = resultSet.getString(39);
            expenseHead.Type20       = resultSet.getString(40);

            expenseHead.Type_Desc1   = resultSet.getString(42);
            expenseHead.Type_Desc2   = resultSet.getString(43);
            expenseHead.Type_Desc3   = resultSet.getString(44);
            expenseHead.Type_Desc4   = resultSet.getString(45);
            expenseHead.Type_Desc5   = resultSet.getString(46);
            expenseHead.Type_Desc6   = resultSet.getString(47);
            expenseHead.Type_Desc7   = resultSet.getString(48);
            expenseHead.Type_Desc8   = resultSet.getString(49);
            expenseHead.Type_Desc9   = resultSet.getString(50);
            expenseHead.Type_Desc10   = resultSet.getString(51);
            expenseHead.Type_Desc11   = resultSet.getString(52);
            expenseHead.Type_Desc12   = resultSet.getString(53);
            expenseHead.Type_Desc13   = resultSet.getString(54);
            expenseHead.Type_Desc14   = resultSet.getString(55);
            expenseHead.Type_Desc15   = resultSet.getString(56);
            expenseHead.Type_Desc16   = resultSet.getString(57);
            expenseHead.Type_Desc17   = resultSet.getString(58);
            expenseHead.Type_Desc18   = resultSet.getString(59);
            expenseHead.Type_Desc19   = resultSet.getString(60);
            expenseHead.Type_Desc20   = resultSet.getString(61);

            expenseHead.CUR1_1       = resultSet.getString(62);
            expenseHead.CUR1_2       = resultSet.getString(63);
            expenseHead.CUR1_3       = resultSet.getString(64);
            expenseHead.CUR1_4       = resultSet.getString(65);
            expenseHead.CUR1_5       = resultSet.getString(66);
            expenseHead.CUR1_6       = resultSet.getString(67);
            expenseHead.CUR1_7       = resultSet.getString(68);

            expenseHead.CUR2_1       = resultSet.getString(69);
            expenseHead.CUR2_2       = resultSet.getString(70);
            expenseHead.CUR2_3       = resultSet.getString(71);
            expenseHead.CUR2_4       = resultSet.getString(72);
            expenseHead.CUR2_5       = resultSet.getString(73);
            expenseHead.CUR2_6       = resultSet.getString(74);
            expenseHead.CUR2_7       = resultSet.getString(75);

            expenseHead.CUR3_1       = resultSet.getString(76);
            expenseHead.CUR3_2       = resultSet.getString(77);
            expenseHead.CUR3_3       = resultSet.getString(78);
            expenseHead.CUR3_4       = resultSet.getString(79);
            expenseHead.CUR3_5       = resultSet.getString(80);
            expenseHead.CUR3_6       = resultSet.getString(81);
            expenseHead.CUR3_7       = resultSet.getString(82);

            expenseHead.CUR4_1       = resultSet.getString(83);
            expenseHead.CUR4_2       = resultSet.getString(84);
            expenseHead.CUR4_3       = resultSet.getString(85);
            expenseHead.CUR4_4       = resultSet.getString(86);
            expenseHead.CUR4_5       = resultSet.getString(87);
            expenseHead.CUR4_6       = resultSet.getString(88);
            expenseHead.CUR4_7       = resultSet.getString(89);

            expenseHead.CUR5_1       = resultSet.getString(90);
            expenseHead.CUR5_2       = resultSet.getString(91);
            expenseHead.CUR5_3       = resultSet.getString(92);
            expenseHead.CUR5_4       = resultSet.getString(93);
            expenseHead.CUR5_5       = resultSet.getString(94);
            expenseHead.CUR5_6       = resultSet.getString(95);
            expenseHead.CUR5_7       = resultSet.getString(96);

            expenseHead.CUR6_1       = resultSet.getString(97);
            expenseHead.CUR6_2       = resultSet.getString(98);
            expenseHead.CUR6_3       = resultSet.getString(99);
            expenseHead.CUR6_4       = resultSet.getString(100);
            expenseHead.CUR6_5       = resultSet.getString(101);
            expenseHead.CUR6_6       = resultSet.getString(102);
            expenseHead.CUR6_7       = resultSet.getString(103);

            expenseHead.CUR7_1       = resultSet.getString(104);
            expenseHead.CUR7_2       = resultSet.getString(105);
            expenseHead.CUR7_3       = resultSet.getString(106);
            expenseHead.CUR7_4       = resultSet.getString(107);
            expenseHead.CUR7_5       = resultSet.getString(108);
            expenseHead.CUR7_6       = resultSet.getString(109);
            expenseHead.CUR7_7       = resultSet.getString(110);

            expenseHead.CUR8_1       = resultSet.getString(111);
            expenseHead.CUR8_2       = resultSet.getString(112);
            expenseHead.CUR8_3       = resultSet.getString(113);
            expenseHead.CUR8_4       = resultSet.getString(114);
            expenseHead.CUR8_5       = resultSet.getString(115);
            expenseHead.CUR8_6       = resultSet.getString(116);
            expenseHead.CUR8_7       = resultSet.getString(117);

            expenseHead.CUR9_1       = resultSet.getString(118);
            expenseHead.CUR9_2       = resultSet.getString(119);
            expenseHead.CUR9_3       = resultSet.getString(120);
            expenseHead.CUR9_4       = resultSet.getString(121);
            expenseHead.CUR9_5       = resultSet.getString(122);
            expenseHead.CUR9_6       = resultSet.getString(123);
            expenseHead.CUR9_7       = resultSet.getString(124);

            expenseHead.CUR10_1       = resultSet.getString(125);
            expenseHead.CUR10_2       = resultSet.getString(126);
            expenseHead.CUR10_3       = resultSet.getString(127);
            expenseHead.CUR10_4       = resultSet.getString(128);
            expenseHead.CUR10_5       = resultSet.getString(129);
            expenseHead.CUR10_6       = resultSet.getString(130);
            expenseHead.CUR10_7       = resultSet.getString(131);

            expenseHead.CUR11_1       = resultSet.getString(132);
            expenseHead.CUR11_2       = resultSet.getString(133);
            expenseHead.CUR11_3       = resultSet.getString(134);
            expenseHead.CUR11_4       = resultSet.getString(135);
            expenseHead.CUR11_5       = resultSet.getString(136);
            expenseHead.CUR11_6       = resultSet.getString(137);
            expenseHead.CUR11_7       = resultSet.getString(138);

            expenseHead.CUR12_1       = resultSet.getString(139);
            expenseHead.CUR12_2       = resultSet.getString(140);
            expenseHead.CUR12_3       = resultSet.getString(141);
            expenseHead.CUR12_4       = resultSet.getString(142);
            expenseHead.CUR12_5       = resultSet.getString(143);
            expenseHead.CUR12_6       = resultSet.getString(144);
            expenseHead.CUR12_7       = resultSet.getString(145);

            expenseHead.CUR13_1       = resultSet.getString(147); // 147
            expenseHead.CUR13_2       = resultSet.getString(148);
            expenseHead.CUR13_3       = resultSet.getString(149);
            expenseHead.CUR13_4       = resultSet.getString(150);
            expenseHead.CUR13_5       = resultSet.getString(151);
            expenseHead.CUR13_6       = resultSet.getString(152);
            expenseHead.CUR13_7       = resultSet.getString(153);

            expenseHead.CUR14_1       = resultSet.getString(154);
            expenseHead.CUR14_2       = resultSet.getString(155);
            expenseHead.CUR14_3       = resultSet.getString(156);
            expenseHead.CUR14_4       = resultSet.getString(157);
            expenseHead.CUR14_5       = resultSet.getString(158);
            expenseHead.CUR14_6       = resultSet.getString(159);
            expenseHead.CUR14_7       = resultSet.getString(160);

            expenseHead.CUR15_1       = resultSet.getString(161);
            expenseHead.CUR15_2       = resultSet.getString(162);
            expenseHead.CUR15_3       = resultSet.getString(163);
            expenseHead.CUR15_4       = resultSet.getString(164);
            expenseHead.CUR15_5       = resultSet.getString(165);
            expenseHead.CUR15_6       = resultSet.getString(166);
            expenseHead.CUR15_7       = resultSet.getString(167);

            expenseHead.CUR16_1       = resultSet.getString(169); // no 168
            expenseHead.CUR16_2       = resultSet.getString(170);
            expenseHead.CUR16_3       = resultSet.getString(171);
            expenseHead.CUR16_4       = resultSet.getString(172);
            expenseHead.CUR16_5       = resultSet.getString(173);
            expenseHead.CUR16_6       = resultSet.getString(174);
            expenseHead.CUR16_7       = resultSet.getString(175);

            expenseHead.CUR17_1       = resultSet.getString(177);
            expenseHead.CUR17_2       = resultSet.getString(178);
            expenseHead.CUR17_3       = resultSet.getString(179);
            expenseHead.CUR17_4       = resultSet.getString(180);
            expenseHead.CUR17_5       = resultSet.getString(181);
            expenseHead.CUR17_6       = resultSet.getString(182);
            expenseHead.CUR17_7       = resultSet.getString(183);

            expenseHead.CUR18_1       = resultSet.getString(184);
            expenseHead.CUR18_2       = resultSet.getString(185);
            expenseHead.CUR18_3       = resultSet.getString(186);
            expenseHead.CUR18_4       = resultSet.getString(187);
            expenseHead.CUR18_5       = resultSet.getString(188);
            expenseHead.CUR18_6       = resultSet.getString(189);
            expenseHead.CUR18_7       = resultSet.getString(190);

            expenseHead.CUR19_1       = resultSet.getString(192);//no 191
            expenseHead.CUR19_2       = resultSet.getString(193);
            expenseHead.CUR19_3       = resultSet.getString(194);
            expenseHead.CUR19_4       = resultSet.getString(195);
            expenseHead.CUR19_5       = resultSet.getString(196);
            expenseHead.CUR19_6       = resultSet.getString(197);
            expenseHead.CUR19_7       = resultSet.getString(198);


            expenseHead.CUR20_1       = resultSet.getString(200);
            expenseHead.CUR20_2       = resultSet.getString(201);
            expenseHead.CUR20_3       = resultSet.getString(202);
            expenseHead.CUR20_4       = resultSet.getString(203);
            expenseHead.CUR20_5       = resultSet.getString(204);
            expenseHead.CUR20_6       = resultSet.getString(205);
            expenseHead.CUR20_7       = resultSet.getString(206);


            expenseHead.AMT1_1        = resultSet.getReal(207);
            expenseHead.AMT1_2        = resultSet.getReal(208);
            expenseHead.AMT1_3        = resultSet.getReal(209);
            expenseHead.AMT1_4        = resultSet.getReal(210);
            expenseHead.AMT1_5        = resultSet.getReal(211);
            expenseHead.AMT1_6        = resultSet.getReal(212);
            expenseHead.AMT1_7        = resultSet.getReal(213);

            expenseHead.AMT2_1        = resultSet.getReal(214);
            expenseHead.AMT2_2        = resultSet.getReal(215);
            expenseHead.AMT2_3        = resultSet.getReal(216);
            expenseHead.AMT2_4        = resultSet.getReal(217);
            expenseHead.AMT2_5        = resultSet.getReal(218);
            expenseHead.AMT2_6        = resultSet.getReal(219);
            expenseHead.AMT2_7        = resultSet.getReal(220);

            expenseHead.AMT3_1        = resultSet.getReal(221);
            expenseHead.AMT3_2        = resultSet.getReal(222);
            expenseHead.AMT3_3        = resultSet.getReal(223);
            expenseHead.AMT3_4        = resultSet.getReal(224);
            expenseHead.AMT3_5        = resultSet.getReal(225);
            expenseHead.AMT3_6        = resultSet.getReal(226);
            expenseHead.AMT3_7        = resultSet.getReal(227);

            expenseHead.AMT4_1        = resultSet.getReal(228);
            expenseHead.AMT4_2        = resultSet.getReal(229);
            expenseHead.AMT4_3        = resultSet.getReal(230);
            expenseHead.AMT4_4        = resultSet.getReal(231);
            expenseHead.AMT4_5        = resultSet.getReal(232);
            expenseHead.AMT4_6        = resultSet.getReal(233);
            expenseHead.AMT4_7        = resultSet.getReal(234);

            expenseHead.AMT5_1        = resultSet.getReal(235);
            expenseHead.AMT5_2        = resultSet.getReal(236);
            expenseHead.AMT5_3        = resultSet.getReal(237);
            expenseHead.AMT5_4        = resultSet.getReal(238);
            expenseHead.AMT5_5        = resultSet.getReal(239);
            expenseHead.AMT5_6        = resultSet.getReal(240);
            expenseHead.AMT5_7        = resultSet.getReal(241);

            expenseHead.AMT6_1        = resultSet.getReal(242);
            expenseHead.AMT6_2        = resultSet.getReal(243);
            expenseHead.AMT6_3        = resultSet.getReal(244);
            expenseHead.AMT6_4        = resultSet.getReal(245);
            expenseHead.AMT6_5        = resultSet.getReal(246);
            expenseHead.AMT6_6        = resultSet.getReal(247);
            expenseHead.AMT6_7        = resultSet.getReal(248);

            expenseHead.AMT7_1        = resultSet.getReal(250); // no 249
            expenseHead.AMT7_2        = resultSet.getReal(251);
            expenseHead.AMT7_3        = resultSet.getReal(252);
            expenseHead.AMT7_4        = resultSet.getReal(253);
            expenseHead.AMT7_5        = resultSet.getReal(254);
            expenseHead.AMT7_6        = resultSet.getReal(255);
            expenseHead.AMT7_7        = resultSet.getReal(256);

            expenseHead.AMT8_1        = resultSet.getReal(257);
            expenseHead.AMT8_2        = resultSet.getReal(258);
            expenseHead.AMT8_3        = resultSet.getReal(259);
            expenseHead.AMT8_4        = resultSet.getReal(260);
            expenseHead.AMT8_5        = resultSet.getReal(261);
            expenseHead.AMT8_6        = resultSet.getReal(262);
            expenseHead.AMT8_7        = resultSet.getReal(263);

            expenseHead.AMT9_1        = resultSet.getReal(265); // no 264
            expenseHead.AMT9_2        = resultSet.getReal(266);
            expenseHead.AMT9_3        = resultSet.getReal(267);
            expenseHead.AMT9_4        = resultSet.getReal(268);
            expenseHead.AMT9_5        = resultSet.getReal(269);
            expenseHead.AMT9_6        = resultSet.getReal(270);
            expenseHead.AMT9_7        = resultSet.getReal(271);


            expenseHead.AMT10_1        = resultSet.getReal(273); // no 272
            expenseHead.AMT10_2        = resultSet.getReal(274);
            expenseHead.AMT10_3        = resultSet.getReal(275);
            expenseHead.AMT10_4        = resultSet.getReal(276);
            expenseHead.AMT10_5        = resultSet.getReal(277);
            expenseHead.AMT10_6        = resultSet.getReal(278);
            expenseHead.AMT10_7        = resultSet.getReal(279);

            expenseHead.AMT11_1        = resultSet.getReal(281); // no 280
            expenseHead.AMT11_2        = resultSet.getReal(282);
            expenseHead.AMT11_3        = resultSet.getReal(283);
            expenseHead.AMT11_4        = resultSet.getReal(284);
            expenseHead.AMT11_5        = resultSet.getReal(285);
            expenseHead.AMT11_6        = resultSet.getReal(286);
            expenseHead.AMT11_7        = resultSet.getReal(287);

            expenseHead.AMT12_1        = resultSet.getReal(289); // no 288
            expenseHead.AMT12_2        = resultSet.getReal(290);
            expenseHead.AMT12_3        = resultSet.getReal(291);
            expenseHead.AMT12_4        = resultSet.getReal(292);
            expenseHead.AMT12_5        = resultSet.getReal(293);
            expenseHead.AMT12_6        = resultSet.getReal(294);
            expenseHead.AMT12_7        = resultSet.getReal(295);

            expenseHead.AMT13_1        = resultSet.getReal(296);
            expenseHead.AMT13_2        = resultSet.getReal(297);
            expenseHead.AMT13_3        = resultSet.getReal(298);
            expenseHead.AMT13_4        = resultSet.getReal(299);
            expenseHead.AMT13_5        = resultSet.getReal(300);
            expenseHead.AMT13_6        = resultSet.getReal(301);
            expenseHead.AMT13_7        = resultSet.getReal(302);

            expenseHead.AMT14_1        = resultSet.getReal(304); //no 303
            expenseHead.AMT14_2        = resultSet.getReal(305);
            expenseHead.AMT14_3        = resultSet.getReal(306);
            expenseHead.AMT14_4        = resultSet.getReal(307);
            expenseHead.AMT14_5        = resultSet.getReal(308);
            expenseHead.AMT14_6        = resultSet.getReal(309);
            expenseHead.AMT14_7        = resultSet.getReal(310);

            expenseHead.AMT15_1        = resultSet.getReal(311);
            expenseHead.AMT15_2        = resultSet.getReal(312);
            expenseHead.AMT15_3        = resultSet.getReal(313);
            expenseHead.AMT15_4        = resultSet.getReal(314);
            expenseHead.AMT15_5        = resultSet.getReal(315);
            expenseHead.AMT15_6        = resultSet.getReal(316);
            expenseHead.AMT15_7        = resultSet.getReal(317);

            expenseHead.AMT16_1        = resultSet.getReal(319); //no 318
            expenseHead.AMT16_2        = resultSet.getReal(320);
            expenseHead.AMT16_3        = resultSet.getReal(321);
            expenseHead.AMT16_4        = resultSet.getReal(322);
            expenseHead.AMT16_5        = resultSet.getReal(323);
            expenseHead.AMT16_6        = resultSet.getReal(324);
            expenseHead.AMT16_7        = resultSet.getReal(325);

            expenseHead.AMT17_1        = resultSet.getReal(326);
            expenseHead.AMT17_2        = resultSet.getReal(327);
            expenseHead.AMT17_3        = resultSet.getReal(328);
            expenseHead.AMT17_4        = resultSet.getReal(329);
            expenseHead.AMT17_5        = resultSet.getReal(330);
            expenseHead.AMT17_6        = resultSet.getReal(331);
            expenseHead.AMT17_7        = resultSet.getReal(332);

            expenseHead.AMT18_1        = resultSet.getReal(334); //no 333
            expenseHead.AMT18_2        = resultSet.getReal(335);
            expenseHead.AMT18_3        = resultSet.getReal(336);
            expenseHead.AMT18_4        = resultSet.getReal(337);
            expenseHead.AMT18_5        = resultSet.getReal(338);
            expenseHead.AMT18_6        = resultSet.getReal(339);
            expenseHead.AMT18_7        = resultSet.getReal(340);

            expenseHead.AMT17_1        = resultSet.getReal(341);
            expenseHead.AMT17_2        = resultSet.getReal(342);
            expenseHead.AMT17_3        = resultSet.getReal(343);
            expenseHead.AMT17_4        = resultSet.getReal(344);
            expenseHead.AMT17_5        = resultSet.getReal(345);
            expenseHead.AMT17_6        = resultSet.getReal(346);
            expenseHead.AMT17_7        = resultSet.getReal(347);

            //no 348
            expenseHead.AMT17_1        = resultSet.getReal(349);
            expenseHead.AMT17_2        = resultSet.getReal(350);
            expenseHead.AMT17_3        = resultSet.getReal(351);
            expenseHead.AMT17_4        = resultSet.getReal(352);
            expenseHead.AMT17_5        = resultSet.getReal(353);
            expenseHead.AMT17_6        = resultSet.getReal(354);
            expenseHead.AMT17_7        = resultSet.getReal(355);
            expenseHead.insert();

            this.update_ExpenseHead(expenseHead.Id);

        }
        ttsCommit;
        //Close the connection.
        resultSet.close();
        statement.close();
    }
    else
    {
        error("Failed to log on to the database through ODBC.");
    }
}

Then update this line as processed.

public void update_ExpenseHead(Int _id)
{
    LoginProperty        loginProperty;
    OdbcConnection       odbcConnection;
    Statement            statement;
    ResultSet            resultSet;
    str                  sql;
    SqlStatementExecutePermission perm;
    str                  dsnStr = ACT_IntegrationParameters::findNTD().stagingDSN;

    ;

    // Set the information on the ODBC.
    loginProperty = new LoginProperty();
    loginProperty.setDSN(dsnStr);

    //Create a connection to external database.
    odbcConnection = new OdbcConnection(loginProperty);

    if (odbcConnection)
    {
        sql = "Update EXPENSES_HEAD Set AX_Status = 'Processed' WHERE ID = '%1'" ;
        sql = strFmt(sql,_id );

        //Assert permission for executing the sql string.
        perm = new SqlStatementExecutePermission(sql);
        perm.assert();

        //Prepare the sql statement.
        statement = odbcConnection.createStatement();
        statement.executeUpdate(sql);

        //Close the connection.
        statement.close();
    }
    else
    {
        error("Failed to log on to the database through ODBC.");
    }
}

then auto create general journal
由于有20 行,每行7列。要取用有数据的值来创建journal,所以做法是先取fieldid,然后通过id取值来实现。

Create GL的完整代码:

void CreateQCExpenesJournal()
{
    ACT_ExpenseHead head;
    FieldId         fieldAMT;
    FieldId         fieldCUR;
    FieldId         fieldDesc;
    FieldId         fieldType;
    int i ,j;
 
    AxLedgerJournalTable  journalTable;
    AxLedgerJournalTrans  journalTrans;
    LedgerJournalTable    ledgerJournalTable;
    LedgerJournalTrans    ledgerJournalTrans;
    LedgerJournalName     ledgerjournalName;
    ACT_QCExpenseType     expenseType;
    container             accCon;
    container             offSetCon;
 
    ttsBegin;
    //journal name
    while select head where head.Generated == NoYes::No
    {
        journalTable  = new AxLedgerJournalTable();
        select firstonly  ledgerJournalName where ledgerJournalname.JournalType == LedgerJournalType::Daily;
        journalTable.parmJournalName(ledgerJournalName.JournalName);
        journalTable.save();
 
        ledgerjournalTable = LedgerJournalTable::findByRecId(journalTable.ledgerJournalTable().RecId, true);
        ledgerJournalTable.Name = strFmt("%1-%2",head.Inspector , head.EXP_NO);
        ledgerjournaltable.QCExpense = NoYes::Yes;
        ledgerJournalTable.update();
 
        for(i =1; i <=20; i++)
        {
            for(j = 1; j<=7 ; j ++)
            {
 
                fieldAMT = fieldName2Id(tableName2Id("ACT_ExpenseHead"),"AMT"+int2str(i)+"_"+int2str(j));
                fieldCUR = fieldName2Id(tableName2Id("ACT_ExpenseHead"),"CUR"+int2str(i)+"_"+int2str(j));
                fieldDesc = fieldName2id(TableName2Id("ACT_ExpenseHead"),"Type_Desc" + int2str(i));
                fieldType = fieldName2id(TableName2Id("ACT_ExpenseHead"),"Type" + int2str(i));
 
                if(!fieldType)
                {
                    select firstOnly expenseType;
                }
                else
                {
                    select firstOnly expenseType where expenseType.Type == head.(fieldType);
                    if(expenseType.RecId == 0)
                    {
                        select firstOnly expenseType;
                    }
                }
 
                if(fieldAMT && head.(fieldAMT) > 0)
                {
                    journalTrans  = new AxLedgerJournalTrans();
                    journalTrans.parmJournalNum(journalTable.ledgerJournalTable().JournalNum);
                    journaltrans.parmTransDate(systemDateGet());
                    journalTrans.parmAccountType(expenseType.Debit_Type);
 
                    accCon = [expenseType.Debit_Account, expenseType.Debit_Account, 0];
                    switch(expenseType.Debit_Type)
                    {
                        case LedgerJournalACType::Cust :
                        case LedgerJournalACType::Vend :
                            journalTrans.parmLedgerDimension(DimensionStorage::getDynamicAccount( conPeek(accCon, 1), expenseType.Debit_Type));
                            break;
                        case LedgerJournalACType::Ledger:
                            journalTrans.parmLedgerDimension(AxdDimensionUtil::getLedgerAccountId(accCon));
                            break;
                        default:
                            journalTrans.parmLedgerDimension(AxdDimensionUtil::getLedgerAccountId(accCon));
                    }
 
 
                    //info(strFmt("%1= %2, dollor = %3",fieldAMT, head.(fieldAMT), head.(fieldCUR)));
 
                    journalTrans.parmAmountCurDebit(head.(fieldAMT));
                    journalTrans.parmCurrencyCode(head.(fieldCUR));
                    journalTrans.parmTxt(head.(fieldDesc));
                    journalTrans.parmQCExpenseType(head.(fieldType));
 
                    offSetCon = [expenseType.Credit_Account,expenseType.Credit_Account,0];
                    journalTrans.parmOffsetAccountType(LedgerJournalACType::Ledger );
                    JournalTrans.clearField(fieldNum(ledgerJournalTrans, offsetLedgerDimension), false);
                    journalTrans.parmOffsetLedgerDimension(AxdDimensionUtil::getLedgerAccountId(offSetCon));
                    journalTrans.save();
 
 
                }
 
            }
        }
        head.selectForUpdate(true);
        head.Generated = NoYes::Yes;
        head.JournalNo = journalTable.ledgerJournalTable().JournalNum;
        head.update();
        info(strFmt("Journal %1 created", journalTable.ledgerJournalTable().JournalNum));
    }   
 
 
    ttsCommit;
 
 
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,607评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,239评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,960评论 0 355
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,750评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,764评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,604评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,347评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,253评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,702评论 1 315
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,893评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,015评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,734评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,352评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,934评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,052评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,216评论 3 371
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,969评论 2 355