代码过账LedgerJournalTable

static void ExampleLedgerJournal(Args _args)

{

    LedgerJournalName           ledgerJournalName;

    LedgerJournalTable          ledgerJournalTable;

    LedgerJournalTrans          ledgerJournalTrans;

    LedgerJournalCheckPost      ledgerJournalCheckPost;

    NumberSeq                   numberSeq;

    ;

    ttsbegin;

    // Find a LedgerJournalName Record

    select firstOnly ledgerJournalName

            where ledgerJournalName.JournalType ==

                                        LedgerJournalType::Daily;

    // Create the LedgerJournlTable

    LedgerJournalTable.JournalName =

                                ledgerJournalName.JournalName;

                               

    LedgerJournalTable.initFromLedgerJournalName();

    LedgerJournalTable.Name = "Daily Trans";

    ledgerJournalTable.insert();

    numberSeq = NumberSeq::newGetVoucherFromCode(

                                ledgerJournalName.VoucherSeries);

    ledgerJournalTrans.Voucher = numberSeq.voucher();

   

    // Create Transaction line

    ledgerJournalTrans.JournalNum =

                                ledgerJournalTable.JournalNum;

    ledgerJournalTrans.CurrencyCode = "EUR";

    ledgerJournalTrans.ExchRate = Currency::exchRate(

                                            ledgerJournalTrans.CurrencyCode);

    ledgerJournalTrans.AccountNum = "57210";

    ledgerJournalTrans.AccountType = LedgerJournalACType::Ledger;

    ledgerJournalTrans.AmountCurDebit = 102.00;

    ledgerJournalTrans.TransDate = today();

    ledgerJournalTrans.Txt = "Room stay";

    ledgerJournalTrans.OffsetAccount = "18110";

    ledgerJournalTrans.insert();

   

    info(strfmt("Journal ID: %1",ledgerJournalTable.JournalNum ));

   

    //Post the Journal

    ledgerJournalCheckPost =

                    LedgerJournalCheckPost::newLedgerJournalTable(

                                    ledgerJournalTable,NoYes::Yes);

    ledgerJournalCheckPost.run();

   

    ttscommit;

}

转载于:https://www.cnblogs.com/perock/archive/2011/12/21/2295606.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是 SAP 采购订单过账的 ABAP 代码实现: 1. 首先需要定义一些变量,并且获取采购订单的相关信息。 ``` DATA: ls_header TYPE bapi_po_header, lt_poitem TYPE TABLE OF bapi_po_item, ls_poitem TYPE bapi_po_item, lt_account TYPE TABLE OF bapi_po_account, ls_account TYPE bapi_po_account. ls_header-po_number = '采购订单号'. ls_header-doc_date = sy-datum. ls_header-posting_date = sy-datum. ls_header-username = sy-uname. CALL FUNCTION 'BAPI_PO_GETDETAIL' EXPORTING purchaseorder = ls_header-po_number IMPORTING po_header = ls_header po_items = lt_poitem. LOOP AT lt_poitem INTO ls_poitem. ls_poitem-po_number = ls_header-po_number. ls_poitem-doc_date = sy-datum. ls_poitem-posting_date = sy-datum. CALL FUNCTION 'BAPI_PO_GETACCOUNT' EXPORTING purchaseorder = ls_header-po_number po_item = ls_poitem-po_item TABLES po_account = lt_account. LOOP AT lt_account INTO ls_account. ls_account-po_number = ls_header-po_number. ls_account-po_item = ls_poitem-po_item. ls_account-doc_date = sy-datum. ls_account-posting_date = sy-datum. ENDLOOP. ENDLOOP. ``` 2. 之后需要调用 `BAPI_PO_CHANGE` 函数进行采购订单的过账。 ``` CALL FUNCTION 'BAPI_PO_CHANGE' EXPORTING purchaseorder = ls_header-po_number headerdata = ls_header TABLES return = lt_return poitem = lt_poitem poaccount = lt_account. ``` 3. 最后需要判断过账是否成功。 ``` IF lt_return[] IS INITIAL. COMMIT WORK. WRITE: / '采购订单 ', ls_header-po_number, ' 过账成功。'. ELSE. ROLLBACK WORK. WRITE: / '采购订单 ', ls_header-po_number, ' 过账失败。'. ENDIF. ``` 以上就是 SAP 采购订单过账的 ABAP 代码实现。需要注意的是,实现过程中需要根据实际情况进行相应的修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值