BAPI_ALM_NOTIF_CREATE-项目长文本

2020-09-07 03:00发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我有一个程序可以从excel上传信息,然后使用BAPI_ALM_NOTIF_CREATE创建PM通知。

将使用项目和任务以及相应的长文本创建通知。

我的问题是未创建的项目长文本。 任务长文本工作正常,但我似乎无法使其适用于项目长文本。 通知将使用所有数据(包括活动和任务的长文本)创建,但项目长文本除外。

我使用了 https://launchpad.support.sap.com/#/ notes/604300 供参考,这是我的代码(从excel获取数据并检查所有变量并具有正确的值没有问题):

项目部分(长文本不起作用):

清除:ls_itm,lt_itm,lv_itmnum_len,i_bapi2080_longtexts。
       如果gs_saida-itm_num不是INITIAL。
         lv_itmnum_len = strlen(gs_saida-itm_num)。
         案例lv_itmnum_len。
           何时1。
             CONCATENATE'000'gs_saida-itm_num INTO gs_saida-itm_num。
           何时2。
             CONCATENATE'00'gs_saida-itm_num INTO gs_saida-itm_num。
           何时3。
             CONCATENATE'0'gs_saida-itm_num INTO gs_saida-itm_num。
         结束。
         ls_itm-ITEM_KEY = gs_saida-itm_num。
         ls_itm-ITEM_SORT_NO = gs_saida-itm_num。
         ls_itm-DESCRIPT = gs_saida-itm_txtbreve。
         ls_itm-D_CODEGRP = gs_saida-itm_grcod。
         ls_itm-D_CODE = gs_saida-itm_motivo。
         附加ls_itm至lt_itm。
         如果gs_saida-itm_txtlongo不是INITIAL。
           清除:len,v_count,关闭。
           len = STRLEN(gs_saida-itm_txtlongo)。
           v_count =(len/132)。
           v_count = v_count + 1。
           偏移= 0。
           i_bapi2080_longtexts-OBJTYPE ='QMFE'。
           合并gs_saida-itm_num space space space space到i_bapi2080_longtexts-OBJKEY尊重空白。
           做v_count次。
             i_bapi2080_longtexts-FORMAT_COL ='*'。
             i_bapi2080_longtexts-TEXT_LINE = gs_saida-itm_txtlongo + offs(132)。
             " i_bapi2080_longtexts-TEXT_LINE = gs_saida-itm_txtlongo。
             附录i_bapi2080_longtexts。
             偏移=偏移+ 132。
           ENDDO。
         万一。
       万一。
 

任务部分(处理长文本):

清除:ls_med,lt_med,lv_mednum_len,i_bapi2080_longtexts。
       如果gs_saida-med_num不是INITIAL。
         lv_mednum_len = strlen(gs_saida-med_num)。
         案例lv_mednum_len。
           何时1。
             CONCATENATE'000'gs_saida-med_num INTO gs_saida-med_num。
           何时2。
             CONCATENATE'00'gs_saida-med_num INTO gs_saida-med_num。
           何时3。
             CONCATENATE'0'gs_saida-med_num INTO gs_saida-med_num。
         结束。
         ls_med-TASK_KEY = gs_saida-med_num。
         ls_med-TASK_SORT_NO = gs_saida-med_num。
         ls_med-TASK_TEXT = gs_saida-med_txtbreve。
         ls_med-TASK_CODEGRP = gs_saida-med_grcod。
         ls_med-TASK_CODE = gs_saida-med_codigo。
         APPEND ls_med至lt_med。
         如果gs_saida-med_txtlongo不是INITIAL。
           清除:len,v_count,关闭。
           len = STRLEN(gs_saida-act_txtlongo)。
           v_count =(len/132)。
           v_count = v_count + 1。
           偏移= 0。
           i_bapi2080_longtexts-OBJTYPE ='QMSM'。
           合并空间space space space gs_saida-med_num INTO i_bapi2080_longtexts-OBJKEY尊重空白。
           做v_count次。
             i_bapi2080_longtexts-FORMAT_COL ='*'。
             i_bapi2080_longtexts-TEXT_LINE = gs_saida-med_txtlongo。
             附录i_bapi2080_longtexts。
             偏移=偏移+ 132。
           ENDDO。
         万一。
       万一。
 

任何帮助/建议表示赞赏! :)

谢谢!

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我有一个程序可以从excel上传信息,然后使用BAPI_ALM_NOTIF_CREATE创建PM通知。

将使用项目和任务以及相应的长文本创建通知。

我的问题是未创建的项目长文本。 任务长文本工作正常,但我似乎无法使其适用于项目长文本。 通知将使用所有数据(包括活动和任务的长文本)创建,但项目长文本除外。

我使用了 https://launchpad.support.sap.com/#/ notes/604300 供参考,这是我的代码(从excel获取数据并检查所有变量并具有正确的值没有问题):

项目部分(长文本不起作用):

清除:ls_itm,lt_itm,lv_itmnum_len,i_bapi2080_longtexts。
       如果gs_saida-itm_num不是INITIAL。
         lv_itmnum_len = strlen(gs_saida-itm_num)。
         案例lv_itmnum_len。
           何时1。
             CONCATENATE'000'gs_saida-itm_num INTO gs_saida-itm_num。
           何时2。
             CONCATENATE'00'gs_saida-itm_num INTO gs_saida-itm_num。
           何时3。
             CONCATENATE'0'gs_saida-itm_num INTO gs_saida-itm_num。
         结束。
         ls_itm-ITEM_KEY = gs_saida-itm_num。
         ls_itm-ITEM_SORT_NO = gs_saida-itm_num。
         ls_itm-DESCRIPT = gs_saida-itm_txtbreve。
         ls_itm-D_CODEGRP = gs_saida-itm_grcod。
         ls_itm-D_CODE = gs_saida-itm_motivo。
         附加ls_itm至lt_itm。
         如果gs_saida-itm_txtlongo不是INITIAL。
           清除:len,v_count,关闭。
           len = STRLEN(gs_saida-itm_txtlongo)。
           v_count =(len/132)。
           v_count = v_count + 1。
           偏移= 0。
           i_bapi2080_longtexts-OBJTYPE ='QMFE'。
           合并gs_saida-itm_num space space space space到i_bapi2080_longtexts-OBJKEY尊重空白。
           做v_count次。
             i_bapi2080_longtexts-FORMAT_COL ='*'。
             i_bapi2080_longtexts-TEXT_LINE = gs_saida-itm_txtlongo + offs(132)。
             " i_bapi2080_longtexts-TEXT_LINE = gs_saida-itm_txtlongo。
             附录i_bapi2080_longtexts。
             偏移=偏移+ 132。
           ENDDO。
         万一。
       万一。
 

任务部分(处理长文本):

清除:ls_med,lt_med,lv_mednum_len,i_bapi2080_longtexts。
       如果gs_saida-med_num不是INITIAL。
         lv_mednum_len = strlen(gs_saida-med_num)。
         案例lv_mednum_len。
           何时1。
             CONCATENATE'000'gs_saida-med_num INTO gs_saida-med_num。
           何时2。
             CONCATENATE'00'gs_saida-med_num INTO gs_saida-med_num。
           何时3。
             CONCATENATE'0'gs_saida-med_num INTO gs_saida-med_num。
         结束。
         ls_med-TASK_KEY = gs_saida-med_num。
         ls_med-TASK_SORT_NO = gs_saida-med_num。
         ls_med-TASK_TEXT = gs_saida-med_txtbreve。
         ls_med-TASK_CODEGRP = gs_saida-med_grcod。
         ls_med-TASK_CODE = gs_saida-med_codigo。
         APPEND ls_med至lt_med。
         如果gs_saida-med_txtlongo不是INITIAL。
           清除:len,v_count,关闭。
           len = STRLEN(gs_saida-act_txtlongo)。
           v_count =(len/132)。
           v_count = v_count + 1。
           偏移= 0。
           i_bapi2080_longtexts-OBJTYPE ='QMSM'。
           合并空间space space space gs_saida-med_num INTO i_bapi2080_longtexts-OBJKEY尊重空白。
           做v_count次。
             i_bapi2080_longtexts-FORMAT_COL ='*'。
             i_bapi2080_longtexts-TEXT_LINE = gs_saida-med_txtlongo。
             附录i_bapi2080_longtexts。
             偏移=偏移+ 132。
           ENDDO。
         万一。
       万一。
 

任何帮助/建议表示赞赏! :)

谢谢!

付费偷看设置
发送
2条回答
宇峰Kouji
1楼-- · 2020-09-07 03:11

我不认为这是问题所在,但无论如何都要检查: https://launchpad.support.sap。 com/#/notes/847209

暮风yp
2楼-- · 2020-09-07 03:22

还要检查GS_SAIDA-ITM_NUM字段是否填充了有效且唯一的条目。

并且两个代码组/代码也有效。 尝试在现有通知中手动输入代码组/代码,以确保没有错误发出。

这里有一些我在另一个项目上使用的测试代码:

清除gs_notitem。
     gs_notitem-item_key ='0001'。
     gs_notitem-item_sort_no ='0010'。
     gs_notitem-descript ='Item 1'。
     将gs_notitem附加到gt_notitem。
     清除gs_notitem。
     gs_notitem-item_key ='0002'。
     gs_notitem-item_sort_no ='0020'。
     gs_notitem-descript ='Item 2'。
     将gs_notitem附加到gt_notitem。

PeteA

一周热门 更多>