BAPI_PO_CREATE1-错误06041:合同的有效期已于

2020-09-30 05:35发布

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

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


你好

我已经搜索了论坛和SAP的知识库,但没有成功,现在我向社区寻求帮助。

我正在创建的PO具有引用合同的项目,并且我正在通过BAPI_PO_CREATE1创建PO,但它始终给出错误06041(E06041)合同的有效期已于 16.04.2018 >(在将来。。。完全没有意义!)。

我不知道自己在做什么或为什么出现此错误消息。

任何帮助都将受到欢迎! :)

这是合同:

BAPI_PO_CREATE1的返回表是这样:

我用于创建PO的代码(is_alug和is_head的值从xlsx填充):

 bs_head-COMP_CODE = is_head-c6。
   bs_head-DOC_TYPE ='NB'。
 * bs_head-CREAT_DATE = sy数据。
 * bs_head-CREATED_BY = sy-uname。
 * bs_head-ITEM_INTVL ='10'。
   bs_head-VENDOR = is_head-c3。
   bs_head-PURCH_ORG = is_head-c4。
   bs_head-PUR_GROUP = is_head-c5。
   bs_head-DOC_DATE = is_head-c2。
   bs_head-CURRENCY ='EUR'。
   bs_head-REF_1 ='xxxxx'。
   bs_head-OUR_REF ='xxxx'。

   bs_headx-COMP_CODE ='X'。
   bs_headx-DOC_TYPE ='X'。
   bs_headx-CREAT_DATE ='X'。
   bs_headx-CREATED_BY ='X'。
   bs_headx-ITEM_INTVL ='X'。
   bs_headx-VENDOR ='X'。
   bs_headx-PURCH_ORG ='X'。
   bs_headx-PUR_GROUP ='X'。
   bs_headx-DOC_DATE ='X'。
   bs_headx-CURRENCY ='X'。
   bs_headx-REF_1 ='X'。
   bs_headx-OUR_REF ='X'。

     bs_item-PO_ITEM = is_alug-c2。
     bs_item-SHORT_TEXT = is_alug-c4。
     bs_item-MATERIAL = is_alug-c3。
     bs_item-PLANT = is_alug-c7。
     bs_item-MATL_GROUP = is_alug-c6。
     bs_item-QUANTITY = is_alug-c5。
 * bs_item-ITEM_CAT =''。
 * bs_item-ACCTASSCAT ='K'。
     bs_item-AGREEMENT = is_alug-c9。
     bs_item-AGMT_ITEM = is_alug-c10。
     将bs_item附加到bt_item。

     bs_itemx-PO_ITEM = is_alug-c2。
     bs_itemx-PO_ITEMX ='X'。
     bs_itemx-SHORT_TEXT ='X'。
     bs_itemx-MATERIAL ='X'。
     bs_itemx-PLANT ='X'。
     bs_itemx-MATL_GROUP ='X'。
     bs_itemx-QUANTITY ='X'。
 * bs_itemx-ITEM_CAT ='X'。
 * bs_itemx-ACCTASSCAT ='X'。
     bs_itemx-AGREEMENT ='X'。
     bs_itemx-AGMT_ITEM ='X'。
     将bs_itemx附加到bt_itemx。

     bs_rem-PO_ITEM = is_alug-c2。
     bs_rem-SCHED_LINE ='1'。
     bs_rem-DEL_DATCAT_EXT ='T'。
     CONCATENATE is_alug-c8(2)'。'  is_alug-c8 + 2(2)'。'  is_alug-c8 + 4(4)INTO v_data。
     bs_rem-DELIVERY_DATE = v_data。  " is_alug-c8。
     bs_rem-QUANTITY = is_alug-c5。
     bs_rem-STAT_DATE = is_alug-c8。
     附加bs_rem至bt_rem。

     bs_remx-PO_ITEM = is_alug-c2。
     bs_remx-SCHED_LINE ='1'。
     bs_remx-PO_ITEMX ='X'。
     bs_remx-SCHED_LINEX ='X'。
     bs_remx-DEL_DATCAT_EXT ='X'。
     bs_remx-DELIVERY_DATE ='X'。
     bs_remx-QUANTITY ='X'。
     bs_remx-STAT_DATE ='X'。
     将bs_remx附加到bt_remx。

     通话功能'BAPI_PO_CREATE1'
     出口
       POHEADER = bs_head
       POHEADERX = bs_headx
 * TESTRUN ='X'
     输入
       EXPPURCHASEORDER = bv_pc
       EXPHEADER = bs_headext
     桌子
       返回= bt_ret
       POITEM = bt_item
       POITEMX = bt_itemx
       POSCHEDULE = bt_rem
       POSCHEDULEX = bt_remx。

   如果bv_pc不是INITIAL。
     通话功能'BAPI_TRANSACTION_COMMIT'
      出口
        等待='X'。
   万一。

 

(8.5 kB)

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

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


你好

我已经搜索了论坛和SAP的知识库,但没有成功,现在我向社区寻求帮助。

我正在创建的PO具有引用合同的项目,并且我正在通过BAPI_PO_CREATE1创建PO,但它始终给出错误06041(E06041)合同的有效期已于 16.04.2018 >(在将来。。。完全没有意义!)。

我不知道自己在做什么或为什么出现此错误消息。

任何帮助都将受到欢迎! :)

这是合同:

BAPI_PO_CREATE1的返回表是这样:

我用于创建PO的代码(is_alug和is_head的值从xlsx填充):

 bs_head-COMP_CODE = is_head-c6。
   bs_head-DOC_TYPE ='NB'。
 * bs_head-CREAT_DATE = sy数据。
 * bs_head-CREATED_BY = sy-uname。
 * bs_head-ITEM_INTVL ='10'。
   bs_head-VENDOR = is_head-c3。
   bs_head-PURCH_ORG = is_head-c4。
   bs_head-PUR_GROUP = is_head-c5。
   bs_head-DOC_DATE = is_head-c2。
   bs_head-CURRENCY ='EUR'。
   bs_head-REF_1 ='xxxxx'。
   bs_head-OUR_REF ='xxxx'。

   bs_headx-COMP_CODE ='X'。
   bs_headx-DOC_TYPE ='X'。
   bs_headx-CREAT_DATE ='X'。
   bs_headx-CREATED_BY ='X'。
   bs_headx-ITEM_INTVL ='X'。
   bs_headx-VENDOR ='X'。
   bs_headx-PURCH_ORG ='X'。
   bs_headx-PUR_GROUP ='X'。
   bs_headx-DOC_DATE ='X'。
   bs_headx-CURRENCY ='X'。
   bs_headx-REF_1 ='X'。
   bs_headx-OUR_REF ='X'。

     bs_item-PO_ITEM = is_alug-c2。
     bs_item-SHORT_TEXT = is_alug-c4。
     bs_item-MATERIAL = is_alug-c3。
     bs_item-PLANT = is_alug-c7。
     bs_item-MATL_GROUP = is_alug-c6。
     bs_item-QUANTITY = is_alug-c5。
 * bs_item-ITEM_CAT =''。
 * bs_item-ACCTASSCAT ='K'。
     bs_item-AGREEMENT = is_alug-c9。
     bs_item-AGMT_ITEM = is_alug-c10。
     将bs_item附加到bt_item。

     bs_itemx-PO_ITEM = is_alug-c2。
     bs_itemx-PO_ITEMX ='X'。
     bs_itemx-SHORT_TEXT ='X'。
     bs_itemx-MATERIAL ='X'。
     bs_itemx-PLANT ='X'。
     bs_itemx-MATL_GROUP ='X'。
     bs_itemx-QUANTITY ='X'。
 * bs_itemx-ITEM_CAT ='X'。
 * bs_itemx-ACCTASSCAT ='X'。
     bs_itemx-AGREEMENT ='X'。
     bs_itemx-AGMT_ITEM ='X'。
     将bs_itemx附加到bt_itemx。

     bs_rem-PO_ITEM = is_alug-c2。
     bs_rem-SCHED_LINE ='1'。
     bs_rem-DEL_DATCAT_EXT ='T'。
     CONCATENATE is_alug-c8(2)'。'  is_alug-c8 + 2(2)'。'  is_alug-c8 + 4(4)INTO v_data。
     bs_rem-DELIVERY_DATE = v_data。  " is_alug-c8。
     bs_rem-QUANTITY = is_alug-c5。
     bs_rem-STAT_DATE = is_alug-c8。
     附加bs_rem至bt_rem。

     bs_remx-PO_ITEM = is_alug-c2。
     bs_remx-SCHED_LINE ='1'。
     bs_remx-PO_ITEMX ='X'。
     bs_remx-SCHED_LINEX ='X'。
     bs_remx-DEL_DATCAT_EXT ='X'。
     bs_remx-DELIVERY_DATE ='X'。
     bs_remx-QUANTITY ='X'。
     bs_remx-STAT_DATE ='X'。
     将bs_remx附加到bt_remx。

     通话功能'BAPI_PO_CREATE1'
     出口
       POHEADER = bs_head
       POHEADERX = bs_headx
 * TESTRUN ='X'
     输入
       EXPPURCHASEORDER = bv_pc
       EXPHEADER = bs_headext
     桌子
       返回= bt_ret
       POITEM = bt_item
       POITEMX = bt_itemx
       POSCHEDULE = bt_rem
       POSCHEDULEX = bt_remx。

   如果bv_pc不是INITIAL。
     通话功能'BAPI_TRANSACTION_COMMIT'
      出口
        等待='X'。
   万一。

 

(8.5 kB)
付费偷看设置
发送
4条回答
小熊yu生菜
1楼 · 2020-09-30 06:20.采纳回答

如果您只显示了源数据...仅显示了一半,让人们想象后半部分并没有真正帮助您快速找到解决方案。

例如,如果您使用SE91, 在此处输入您的06 041消息,然后单击"在哪里使用"按钮,然后进入一些程序,在编码中您可以看到SAP比较的内容,它比较抬头数据字段:采购订单单据日期与合同有效日期的结束日期

如果kekko-kdate NE 0和ekko-bedat> kekko-kdate。
       使用'06''041'执行enaco(sapfmmex)。
       案例sy-subrc。
         何时1。
           IF sy-binpt EQ空间。
             使用kekko-kdate进入gl_dummy的消息w041。
             mmpur_message'W''06''041'kekko-kdate''''''。
 

您还可以在带有错误修复的SAP注释中找到此编码,例如 OSS注释749967-ME21N:警告消息06040或06041消失了

基于该信息,您知道必须在哪个日期字段中查找:bs_head-DOC_DATE = is_head-c2。

您 实际上在您的编码中对交货日期进行了一些曲折,但对于文档日期却看不到相同的结果。 您是否在同一源文件中使用2种不同的日期格式? 如果不是,那么您可能需要对所有日期字段执行相同的操作。

Haoba3210
2楼-- · 2020-09-30 06:11

嗨,于尔根!

谢谢! 我已经解决了!

我是如此地专注于项目日期,以至于忘记了有关文档日期的所有信息.............:|

一旦我在DOC_DATE字段上使用了FM CONVERT_DATE_TO_INTERNAL(就像我在商品日期一样),便创建了采购订单。

当我们陷入困境时,没有什么比对我们的工作更有新意了!

感谢所有答复! :)

DafaDDDa
3楼-- · 2020-09-30 06:07

我认为您的交货日期的格式无法识别。 尝试清除日期类别并以YYYYMMDD格式输入交货日期。

JNN

悠然的二货
4楼-- · 2020-09-30 05:57

您好,Suhas,

该报告将传递到功能模块的实际数据保存为测试数据,而不是在测试模式下可与事务SE37一起使用。 因此,这不同于测试数据的生成。

最好的问候,

JNN

一周热门 更多>