日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

no BDOC found in SMW01

發布時間:2023/12/19 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 no BDOC found in SMW01 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Created by Jerry Wang, last modified on Apr 22, 2014

issue: 執行wiki 末尾的report,

?

?

?

?

該report 會生成一個新的IBASE,包含一個IBASE component,該component上維護了一個individual object, ID為JERRYOBJECT1. 該report會根據輸入的Object Family和Object Category,首先創建出Object,再創建Object component,最后刪除object component,并保存整個transaction。

?

?

report執行完畢后,通過transaction code SMW01能觀察到IBASE和Individual object對應的BDOC。

?

?

問題是在product system上執行report后SMW01里沒有生成對應的entry。

分析:?

在CL_SMW_MFLOW~PROCESS_OUTBOUND上設斷點,

?

發現原因在于IBASE和I Object對應的BDOC 被維護成了"not send":

?

?

?

該setting在此處維護:

?

?

?

?

?

?

*&---------------------------------------------------------------------*
*&?Report??ZIBASE_CREATE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT?zibase_create_delete.

PARAMETERS:?txt?TYPE?char40?OBLIGATORY?DEFAULT?'description?test',
????????????eid?TYPE?char30?OBLIGATORY?DEFAULT?'PROGRAM',
????????????oid?TYPE?comm_product-product_id?OBLIGATORY?DEFAULT?'CHILDOBJ8',
????????????fam?TYPE?comm_product-object_family?OBLIGATORY?DEFAULT?'0401',
????????????cat?TYPE?COMT_CATEGORY_ID?OBLIGATORY?DEFAULT?'OBJ_0401'.

DATA:?lt_param??TYPE?crmt_name_value_pair_tab,
??????ls_param??TYPE?crmt_name_value_pair,
??????lr_core???TYPE?REF?TO?cl_crm_bol_core,
??????ls_object?TYPE?comm_product,
??????lr_root???TYPE?REF?TO?if_bol_entity_col,
??????entity????TYPE?REF?TO?cl_crm_bol_entity.

CHECK?zcl_object_generator=>create_object(?iv_id?=?oid?iv_family?=?fam?iv_catid?=?cat?)?=?abap_true.

ls_param-name??=?cl_crm_ibase_il_constant=>createparam.
ls_param-value?=?'01'.
APPEND?ls_param?TO?lt_param.

lr_core?=?cl_crm_bol_core=>get_instance(?).
lr_core->load_component_set('IBASE_ONLY').

CALL?METHOD?lr_core->root_create
??EXPORTING
????iv_object_name??=?cl_crm_ibase_il_constant=>root_object
????iv_create_param?=?lt_param
????iv_number???????=?1
??RECEIVING
????rv_result???????=?lr_root.

CHECK?lr_root?IS?BOUND.
entity??=?lr_root->get_current(?).

CHECK?entity?IS?BOUND.
IF?entity->lock(?)?=?abap_true.
??entity->switch_to_change_mode(?).
ENDIF.

entity->set_property_as_string(?iv_attr_name?=?'DESCR'?iv_value?=?CONV?#(?txt?)?).
entity->set_property_as_string(?iv_attr_name?=?'EXTID'?iv_value?=?CONV?#(?eid?)?).
"entity->set_property_as_string(?iv_attr_name?=?'IBTYP'?iv_value?=?'01'?).
lr_core->modify(?).
DATA(lv_ibase_id)?=?entity->get_property_as_string(?'IBASE'?).

DATA(component)?=?entity->create_related_entity(?'FirstLevelComponent'?).

CHECK?component?IS?NOT?INITIAL.

DATA(obj_comp)?=?component->create_related_entity(?'IBCompObj').

CHECK?obj_comp?IS?NOT?INITIAL.

obj_comp->set_property_as_string(?iv_attr_name?=?'OBJECT_ID'?iv_value?=?CONV?#(?oid?)?).

SELECT?SINGLE?*?INTO?ls_object?FROM?comm_product?WHERE?product_id?=?oid.
ASSERT?sy-subrc?=?0.

obj_comp->set_property_as_string(?iv_attr_name?=?'OBJECT_GUID'?iv_value?=?CONV?#(?ls_object-product_guid?)?).
obj_comp->set_property_as_string(?iv_attr_name?=?'OBJECT_FAMILY'?iv_value?=?CONV?#(?ls_object-product_guid?)?).
lr_core->modify(?).

DATA(lo_message_container)?=?entity->get_message_container(?).
CALL?METHOD?lo_message_container->get_messages
??EXPORTING
????iv_message_type?=?if_genil_message_container=>mt_all
??IMPORTING
????et_messages?????=?DATA(lt_msg1).
LOOP?AT?lt_msg1?ASSIGNING?FIELD-SYMBOL(<msg1>).
??WRITE:/?<msg1>-message?COLOR?COL_NEGATIVE.
ENDLOOP.

CHECK?lt_msg1?IS?INITIAL.

DATA:?ls_header??????TYPE?ibap_head1,
??????lt_struc_tab???TYPE?ibap_struc1_tab,
??????ls_comp?TYPE?IBAP_DAT1.
"delete?component"

ls_header-ibase?=?lv_ibase_id.
CALL?FUNCTION?'CRM_IBASE_GET_DETAIL'
??EXPORTING
????i_ibase_head??????=?ls_header
??IMPORTING
????e_struc_ibase_tab?=?lt_struc_tab
??EXCEPTIONS
????not_specified?????=?1
????doesnt_exist??????=?2
????no_authority??????=?3.

CHECK?sy-subrc?=?0.

READ?TABLE?lt_struc_tab?ASSIGNING?FIELD-SYMBOL(<line>)?INDEX?1.
ls_comp-instance?=?<line>-instance.

CALL?FUNCTION?'CRM_IBASE_COMP_DELETE'
??EXPORTING
?????i_comp?=?ls_comp
??EXCEPTIONS
??????DATA_NOT_CONSISTENT?=?1
??????IBASE_LOCKED?=?2
??????NOT_SUCCESFUL?=?3
??????NO_AUTHORITY?=?4.

CASE?sy-subrc.
???WHEN?1.
??????WRITE:?/?'data?not?consistent'?COLOR?COL_NEGATIVE.
???WHEN?2.
??????WRITE:?/?'cannot?delete?locked?component'?COLOR?COL_NEGATIVE.
???WHEN?3.
??????WRITE:?/?'deletion?not?successful'?COLOR?COL_NEGATIVE.
???WHEN?4.
??????WRITE:?/?'no?deletion?authorization'?COLOR?COL_NEGATIVE.
?ENDCASE.

?CHECK?sy-subrc?=?0.

?BREAK-POINT.


BREAK-POINT.

DATA(lo_transaction)?=?lr_core->get_transaction(?).
DATA(lv_changed)?=?lo_transaction->check_save_needed(?).

CHECK?lv_changed?EQ?abap_true.

DATA(lv_success)?=?lo_transaction->save(?).

DATA(lo_glb_msg_cont)?=?lr_core->get_global_message_cont(?).
CALL?METHOD?lo_glb_msg_cont->if_genil_message_container~get_messages
??EXPORTING
????iv_message_type?=?if_genil_message_container=>mt_all
??IMPORTING
????et_messages?????=?DATA(lt_msg).
LOOP?AT?lt_msg?ASSIGNING?FIELD-SYMBOL(<msg>).
??WRITE:/?<msg>-message.
ENDLOOP.

IF?lv_success?=?abap_true.
??lo_transaction->commit(?).
??WRITE:/?'IBASE?Created?Successfully:?',?lv_ibase_id?COLOR?COL_NEGATIVE.
ELSE.
??lo_transaction->rollback(?).
ENDIF.

總結

以上是生活随笔為你收集整理的no BDOC found in SMW01的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。