简体   繁体   English

为什么 FF_5 不将 EBS 记录过帐到子分类帐?

[英]Why FF_5 is not posting EBS records to subledgers?

I'm trying to post document through tcode FF_5 (electronic bank statements) as SWIFT MT940 - international format, with immediate posting parameter.我正在尝试通过 tcode FF_5(电子银行对账单)将文档作为 SWIFT MT940 - 国际格式,带有立即过帐参数。 Bank Accounting Posting works fine, but Subledger posting doesn't work correctly.银行会计过帐工作正常,但子分类帐过帐不能正常工作。

After debugging I found information that document is being posted by FM: 'POSTING_INTERFACE_DOCUMENT'.调试后,我发现 FM 正在发布该文档的信息:'POSTING_INTERFACE_DOCUMENT'。 Inside return table - t_bapiret2 I'm getting message "Batch Input for screen SAPLFCPD 0100 does not exist" (Type: S, ID: 00, NR: 344).内部返回表 - t_bapiret2 我收到消息“屏幕 SAPLFCPD 0100 的批量输入不存在”(类型:S,ID:00,NR:344)。 When I'm trying to post this without background processing I have to insert name of customer into field BSEC-NAME1 of this screen and it posts fine.当我尝试在没有后台处理的情况下发布此内容时,我必须将客户名称插入此屏幕的字段 BSEC-NAME1 并且发布正常。

I want to automize this process.我想自动化这个过程。 How should I pass data to ftpost[] or bdcdata[] tables to inject information about Customer Name?我应该如何将数据传递到 ftpost[] 或 bdcdata[] 表以注入有关客户名称的信息? I tried to do it in various ways in debugging mode but none of them worked for me.我尝试在调试模式下以各种方式执行此操作,但没有一个对我有用。

Sample BDCDATA[] record that I created:我创建的示例 BDCDATA[] 记录:

ft-program = 'SAPLFCPD'.
ft-dynpro = '0100'.
ft-dynbegin = 'X'.
APPEND ft.
CLEAR ft.
ft-fname = 'BSEC-NAME1'.
ft-fval = 'TEST'.
APPEND ft.

EDIT: Sample bank statement:编辑:样本银行对账单:


:20:MT940
:25:/PL22112110212000180204832110
:28C:56
:60F:C220525PLN89107,30
:61:2205250525D269,98N152NONREF//6450501100324535
152 0
:86:020~00152
~20ZAM.PL111111111, FVKOR/0022
~2111/2205/2401120
~22˙
~23˙
~24˙
~25˙
~3010202964
~310000620200678839
~32CUSTOMER NAME
~33˙
~38PL23102029640000620200678839
~60˙
~63˙
:62F:C220525PLN88837,32
:64:C220525PLN88837,32
-

This is one-time Client, he has no master data information that's why I want to inject it.这是一次性客户,他没有主数据信息,这就是我要注入它的原因。

I would really appreciate any help.我真的很感激任何帮助。


I added some code to process it as BDC, right now entries are available in SM35.我添加了一些代码将其作为 BDC 处理,现在 SM35 中提供了条目。 Code looks like this:代码如下所示:

ENHANCEMENT 1  ES_BDC_FEBAN.    "active version
  data lv_session TYPE APQI-GROUPID.
  lv_session   = |{ SY-DATUM }{ SY-TIMLO(4) }|.

       DATA: lv_name1 LIKE bsec-name1.
       GET PARAMETER ID 'FEBAN_NAME1' FIELD lv_name1.
       IF lv_name1 IS NOT INITIAL.
         CALL FUNCTION 'BDC_OPEN_GROUP'
           EXPORTING
             client              = SY-MANDT         " Client
             group               = LV_SESSION         " Session name
             keep                = 'X'          " Indicator to keep processed sessions
             user                = SY-UNAME     " Batch input user
           EXCEPTIONS
             client_invalid      = 1                " Client is invalid
             destination_invalid = 2                " Target system is invalid/no longer relevant
             group_invalid       = 3                " Batch input session name is invalid
             group_is_locked     = 4                " Batch input session is protected elsewhere
             holddate_invalid    = 5                " Lock date is invalid
             internal_error      = 6                " Internal error of batch input (see SYSLOG)
             queue_error         = 7                " Error reading/writing the queue (see SYSLOG)
             running             = 8                " Session is already being processed
             system_lock_error   = 9                " System error when protecting BI session
             user_invalid        = 10               " BI user is not valid
             others              = 11
           .
         IF SY-SUBRC <> 0.

         ENDIF.

         MODE = 'Q'.

         clear: FUNCT, SGFUNCT.
*          funct = 'B'.
*          SGFUNCT = 'B'.

            ft-program = 'SAPLFCPD'.
            ft-dynpro = '0100'.
            ft-dynbegin = 'X'.
            APPEND ft TO ft[].
            CLEAR: ft-program, ft-dynpro, ft-dynbegin.
            ft-fnam = 'BSEC-NAME1'.
            ft-fval = lv_name1.
            APPEND ft TO ft[].

                  CALL FUNCTION 'BDC_INSERT'
        EXPORTING
          tcode     = tcode
        TABLES
          dynprotab = ft.

       call function 'BDC_CLOSE_GROUP' .

       COMMIT WORK AND WAIT.

       SUBMIT RSBDCSUB EXPORTING LIST TO MEMORY
         WITH mappe    EQ lv_session
         WITH von      EQ sy-datum
         WITH bis      EQ sy-datum
         WITH z_verarb EQ 'X'
         WITH fehler   EQ ''
         WITH logall   EQ 'X'
         AND RETURN.

       ENDIF.

ENDENHANCEMENT.

Variables entries: Tcode = 'FB01' FT[]:变量条目:Tcode = 'FB01' FT[]:

<asx:abap version="1.0" xmlns:asx="http://www.sap.com/abapxml"><asx:values><_--5CTYPE_--3D_--25_T00004S00000371O0000147040><item><PROGRAM>SAPMF05A</PROGRAM><DYNPRO>0100</DYNPRO><DYNBEGIN>X</DYNBEGIN><FNAM/><FVAL/></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BDC_CURSOR</FNAM><FVAL>RF05A-NEWKO</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BKPF-BLDAT</FNAM><FVAL>25.05.2022</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BKPF-BLART</FNAM><FVAL>WB</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BKPF-BUKRS</FNAM><FVAL>1700</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BKPF-BUDAT</FNAM><FVAL>25.05.2022</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BKPF-WAERS</FNAM><FVAL>PLN</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BKPF-XBLNR</FNAM><FVAL>PBE01PL41022056</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BKPF-BKTXT</FNAM><FVAL>0000375800001</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>RF05A-NEWBS</FNAM><FVAL>40</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>RF05A-NEWKO</FNAM><FVAL>1232000000</FVAL></item><item><PROGRAM>SAPMF05A</PROGRAM><DYNPRO>0300</DYNPRO><DYNBEGIN>X</DYNBEGIN><FNAM/><FVAL/></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-WRBTR</FNAM><FVAL>269,98</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-VALUT</FNAM><FVAL>25.05.2022</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-ZUONR</FNAM><FVAL>0000375800001PLN</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-SGTXT</FNAM><FVAL>NONREF 020152 ZAM.PL146751217, FVKOR/002211/2205/2</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BDC_CURSOR</FNAM><FVAL>RF05A-NEWKO</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>RF05A-NEWBS</FNAM><FVAL>50</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>RF05A-NEWKO</FNAM><FVAL>1430101010</FVAL></item><item><PROGRAM>SAPLKACB</PROGRAM><DYNPRO>0002</DYNPRO><DYNBEGIN>X</DYNBEGIN><FNAM/><FVAL/></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BDC_OKCODE</FNAM><FVAL>/00</FVAL></item><item><PROGRAM>SAPMF05A</PROGRAM><DYNPRO>0300</DYNPRO><DYNBEGIN>X</DYNBEGIN><FNAM/><FVAL/></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-WRBTR</FNAM><FVAL>269,98</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-VALUT</FNAM><FVAL>25.05.2022</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-ZUONR</FNAM><FVAL>PL1467512</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-SGTXT</FNAM><FVAL>NONREF 020152 ZAM.PL111111111, FVKOR/002211/2205/2</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BDC_CURSOR</FNAM><FVAL>RF05A-NEWKO</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BDC_OKCODE</FNAM><FVAL>/11</FVAL></item><item><PROGRAM>SAPLKACB</PROGRAM><DYNPRO>0002</DYNPRO><DYNBEGIN>X</DYNBEGIN><FNAM/><FVAL/></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BDC_OKCODE</FNAM><FVAL>/00</FVAL></item><item><PROGRAM>SAPLFCPD</PROGRAM><DYNPRO>0100</DYNPRO><DYNBEGIN>X</DYNBEGIN><FNAM/><FVAL/></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEC-NAME1</FNAM><FVAL>CUSTOMER NAME</FVAL></item></_--5CTYPE_--3D_--25_T00004S00000371O0000147040></asx:values></asx:abap>

Data might looks slightly differently from debugger and bank statement.数据可能看起来与调试器和银行对帐单略有不同。

There are 2 entries in SM35, first is processed correctly, but 2nd one has log entries like this: SM35 中有 2 个条目,第一个被正确处理,但第二个有这样的日志条目: 日志

Can somebody help me please?有人可以帮我吗?

Most likely you are confusing working principles of FEBAN and FF_5 .您很可能混淆了FEBANFF_5的工作原理。

In SM35 you will see BI sessions created by FF_5.在 SM35 中,您将看到 FF_5 创建的 BI 会话。 You need to process them to post real postings.您需要处理它们以发布真实的帖子。

Also I recommend to retry the failed postings via FEBP transaction, which is called by FF_5 under the hood.此外,我建议通过FEBP事务重试失败的发布,该事务由 FF_5 在后台调用。 It does almost the same as FF_5, and uses FF_5 data, but has the ability to repost the failed records.它与 FF_5 几乎相同,使用 FF_5 数据,但具有重新发布失败记录的能力。

The one interesting parameter FEBP has is Bk Pstg Only "Only post to G/L", which may be setting silently by FF_5 which may prevent you to post to subledgers. FEBP的一个有趣参数是Bk Pstg Only “仅过帐到总帐”,它可能由 FF_5 静默设置,这可能会阻止您过帐到子分类帐。 Though I can't confirm this, it's only assumption.虽然我无法证实这一点,但这只是假设。

在此处输入图像描述

PS Also I recommend to never ever change automatically generated batch sessions like you do, not SAPLFCPD nor any others. PS 另外,我建议永远不要像您一样更改自动生成的批处理会话,而不是SAPLFCPD或任何其他会话。

Problem solved.问题解决了。 I passed records in ft[] in wrong order.我以错误的顺序传递了 ft[] 中的记录。 Very usefull thing is using tcode SHDB as simulation how records should be passed.非常有用的事情是使用 tcode SHDB 作为模拟应该如何传递记录。 At my case FT[] table should contain在我的情况下 FT[] 表应该包含

SAPMF05A scr. 0100
[... required fields ...] 
SAPLFCPD scr. 0100
BSEC-NAME1   <-- Injected missing field 
SAPMF05A scr. 0300
[... required fields ...]
SAPMF05A SCR. 0301 
[... required fields ... -> SAVE]

Topic can be closed.主题可以关闭。 Thank you.谢谢你。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM