BAPI_SHIPMENT_CHANGE-更新状态

2020-09-12 04:30发布

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

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


嗨,

我想通过bapi更改货件:" BAPI_SHIPMENT_CHANGE"。 我毫无疑问地更改了与aaa不同的信息,但是当我尝试更改状态时会显示一条错误消息。

当我必须更改STATUS_SHPMNT_START时。 它显示以下错误消息:

无法设置状态,因为尚未设置状态"计划中"
 BAPI无法更改货件xxxxxx 

即使我的目标是激活计划的状态,它也会向我显示此消息。

当我必须更改 STATUS_LOAD_END.it 时,显示以下错误消息:

使用事务ZSAPMSSY4 

更改STATUS_SHPMNT_START的代码:

数据:ls_header TYPE bapishipmentheader,
  ls_headera TYPE bapishipmentheaderaction,
  lt_return TYPE bapiret2_t。
 ls_header-SHIPMENT_NUM ='0004000142'。

 ls_header-STATUS_SHPMNT_START ='X'。
 ls_headera-STATUS_SHPMNT_START ='C'。

 通话功能" BAPI_SHIPMENT_CHANGE"

 出口
  headerdata = ls_header
  headerdataaction = ls_headera

 桌子

 return = lt_return。

 通话功能'BAPI_TRANSACTION_COMMIT'

 出口

 等待= abap_true。

 执行display_messages表lt_return。

更改STATUS_LOAD_END的代码:

数据:ls_header TYPE bapishipmentheader,
  ls_headera TYPE bapishipmentheaderaction,
  lt_return TYPE bapiret2_t。
 ls_header-SHIPMENT_NUM ='0004000142'。
 ls_header-STATUS_LOAD_END ='X'。
 ls_headera-STATUS_LOAD_END ='C'。

 通话功能" BAPI_SHIPMENT_CHANGE"

 出口
  headerdata = ls_header
  headerdataaction = ls_headera

 桌子

 return = lt_return。

 通话功能'BAPI_TRANSACTION_COMMIT'

 出口

 等待= abap_true。

 执行display_messages表lt_return。

最诚挚的问候,

(25.7 kB)

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

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


嗨,

我想通过bapi更改货件:" BAPI_SHIPMENT_CHANGE"。 我毫无疑问地更改了与aaa不同的信息,但是当我尝试更改状态时会显示一条错误消息。

当我必须更改STATUS_SHPMNT_START时。 它显示以下错误消息:

无法设置状态,因为尚未设置状态"计划中"
 BAPI无法更改货件xxxxxx 

即使我的目标是激活计划的状态,它也会向我显示此消息。

当我必须更改 STATUS_LOAD_END.it 时,显示以下错误消息:

使用事务ZSAPMSSY4 

更改STATUS_SHPMNT_START的代码:

数据:ls_header TYPE bapishipmentheader,
  ls_headera TYPE bapishipmentheaderaction,
  lt_return TYPE bapiret2_t。
 ls_header-SHIPMENT_NUM ='0004000142'。

 ls_header-STATUS_SHPMNT_START ='X'。
 ls_headera-STATUS_SHPMNT_START ='C'。

 通话功能" BAPI_SHIPMENT_CHANGE"

 出口
  headerdata = ls_header
  headerdataaction = ls_headera

 桌子

 return = lt_return。

 通话功能'BAPI_TRANSACTION_COMMIT'

 出口

 等待= abap_true。

 执行display_messages表lt_return。

更改STATUS_LOAD_END的代码:

数据:ls_header TYPE bapishipmentheader,
  ls_headera TYPE bapishipmentheaderaction,
  lt_return TYPE bapiret2_t。
 ls_header-SHIPMENT_NUM ='0004000142'。
 ls_header-STATUS_LOAD_END ='X'。
 ls_headera-STATUS_LOAD_END ='C'。

 通话功能" BAPI_SHIPMENT_CHANGE"

 出口
  headerdata = ls_header
  headerdataaction = ls_headera

 桌子

 return = lt_return。

 通话功能'BAPI_TRANSACTION_COMMIT'

 出口

 等待= abap_true。

 执行display_messages表lt_return。

最诚挚的问候,

(25.7 kB)
付费偷看设置
发送
11条回答
南山jay
1楼-- · 2020-09-12 05:22
  • 如前所述,您是否已经在寻找可能引起弹出窗口的任何客户验证(BAdI,Enh等)?
  • 您是否检查了当前的托运状态,所以您尝试了吗? 首先使用BAPI设置STATUS_PLAN吗?
  • 是否通过事务(例如VT02N)收到任何信息/警告消息?
  • 您是否已在格式为CHECK_SHIPMENT_IS_PLANNED的开头设置了断点 功能组V56F? (可以在消息VW 562上的哪里找到,很容易找到)-并测试BAPI和事务
暮风yp
2楼-- · 2020-09-12 05:13

,最后我们给出了第一个建议:

答案是..是的,因为您发现了包含ZXREPU01的产品,听起来对客户功能影响很大。

在调试中检查调用堆栈,以便可以识别客户功能,并查看是否可以通过某种解决方法对其进行修复(或询问开发该功能的人为什么要这样做)。

何必丶何苦呢
3楼-- · 2020-09-12 05:25

我设法解决了第一个问题。 我仍然有第二个问题,当我尝试更新以下三个之一时,出现错误消息" Use Transaction ZSAPMSSY4":加载结束(STATUS_LOAD_END),shpmt完成(STATUS_COMPL),发货开始(STATUS_SHPMNT_START)。

当学会了学习
4楼-- · 2020-09-12 05:09

Simone Milesi ,非常抱歉,我没有注意您的请求

当我点击"?"时 他向我显示此屏幕(消息为IEQ127):

,以及当我在调试中的消息处执行断点时。 该程序,我发现显示错误消息的条件(在程序中:ZXREPU01)

这是变量的值:

问题来自通过SE38执行更新。 但是,当我通过包含装运更改代码的ALV事务执行时,它运行得很好,没有问题。

但是我想通过接收IDOC之后运行的程序进行更改,而不是通过事务进行更改。

那么如何通过程序(非事务性)进行更改呢?

xfwsx85
5楼-- · 2020-09-12 05:02

Simone Milesi ,我设法解决了这个问题很好。 我无法通过se38开始修改。 但是激活该程序后,更新就可以继续进行。

感谢您的帮助:)

一周热门 更多>