如何在DMS中维护链接的SAP对象?

2020-09-21 13:13发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我想知道如何在DMS...

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

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


大家好,

我想知道如何在DMS中维护链接的SAP对象?

是否有任何相关教程? 我想创建一个新的。

提前感谢

最好的问候

费利克斯

2018-02-27-16h30-20.jpg (82.4 kB)
2条回答
我是小鹏鹏啊
2020-09-21 13:55

您好,Felix,

首先,您需要了解DIR(文档信息记录)的创建。 然后,您需要定义特征。 最后,您需要将文件或附件链接到DIR。

在下面找到一些代码以创建DIR。

数据:
ls_doc_change TYPE bapi_doc_drawx2,
ls_characteristicvalues TYPE bapi_characteristic_values类型,
lt_characteristicvalues TYPE tt_bapi_characteristic_values。
*
CLEAR:ev_docnumber,d,_dir *获取项目号。
读取表xt_characteristicvalues用KEY charname = c_xg_001分配FIELD-SYMBOL()。
如果sy-subrc是INITIAL。
移至ls_characteristicvalues。 将ls_characteristicvalues附加到lt_characteristicvalues。
清除:ls_characteristicvalues。
ENDIF。
***从其余特征中删除项目编号
在特征名= c_xg_001的地方删除xt_characteristicvalues。

E IF iv 1 iv_flag EQ 3或iv_flag EQ4。
*根据非cbe表单的导入参数创建文档信息记录。
IF is_form_identifier-cbe_form EQ空间。
调用功能'BAPI_DOCUMENT_CREATE2'
导出
documentdata = is_doc
pf_http_dest = c_htt p_dest
pf_ftp_dest = c_ftp_dest
导入
documenttype = es_dir_dtls-doknr
documentnumber = es_dir_dtls-doknr
documentpart = es_dir_dtls-doktl
documentversion = es_dir_dtls-d br>表格
特征值= lt_characteristicvalues []
类分配= xt_classallocations []
文档描述= xt_documentdescriptions []
对象链接= xt_objectlinks []
文档文件= xt_documentfiles []。
ELSE。
br> *根据cbe表单的导入参数创建文档信息记录。
DATA(ls_doc)= is_doc。
ls_doc-用户名= sy-uname。
ls_doc-createdate = sy-datum。
ls_doc-authoritygroup =空格。
*
调用功能'BAPI_DOCUMENT_CREATE2'
导出
documentdata = ls_doc
pf_http_dest = c_http_dest
pf_ftp_dest = c_ftp_dest
IMPORTING
类型 -dokar
文档编号= es_dir_dtls-doknr
documentpart = es_dir_dtls-doktl
documentversion = es_dir_dtls-dokvr
return = es_return

特征值= lt_characteristicvalues []
类分配= xt_classallocations []
文档描述= xt_documentdescriptions []
对象链接= xt_objectlinks []。
如果es_return_type NA c_ms
*执行BAPI来执行commit
调用功能'BAPI_TRANSACTION_COMMIT'。
等待最多1秒。
*
在xt_documentfiles处分配ASSIGNING FIELD-SYMBOL()。
> -documenttype = es_dir_dtls-dokar。
-documentnumber = es_dir_dtls-doknr。
-documentpart = es_dir_dtls-doktl。
-documentversion = es_dir。
ENDLOOP。
UNASSIGN
清除:es_return。
*检入文档文件
调用功能'BAPI_DOCUMENT_CHECKIN2'
导出
文档类型= es_dir_dtls-dokar
documentnumber = es_dir_dtls-doknr
documentpart = es_dir_dtls-doktl
documentversion = es_dir_dtls-dokvr
我 MPORTING
return = es_return
TABLES
documentfiles = xt_documentfiles []。
ENDIF。
ENDIF。
*
IF es_return型CA c_msg_error_abort。
*执行外部 使用BAPI进行回滚
调用功能'BAPI_TRANSACTION_ROLLBACK'。
ELSE。
如果iv_docutype = c_doctype_u。 "'U'。
ev_docnumber = es_dir_dtls-doknr。
ENDIF。
呼叫功能'BAPI_TRANSACTION_COMMIT'。
等待最多1秒。
***更新其余特征
清除:ls_doc。
ls_doc-documenttype = es_dir_dtls-dokar。
ls_doc-documentversion = es_dir_dtls-dokvr。
ls_doc-documentpart = es_dir_dtls-doktl。
ls_doc-documentnumber = es_dir_d >呼叫功能'BAPI_DOCUMENT_CHANGE2'
导出
文档类型= es_dir_dtls-doknr
documentnumber = es_dir_dtls-doknr
documentpart = es_dir_dtls-doktl
documentversion = es_dir_dtls-dokvr
documentversion = es_dir_dtls-dokvr > documentdatax = ls_doc_change
导入
return = es_return
表格
classallocations = xt_classallocations []
特征值= xt_characteristicvalues []。
如果es_return型CA c_error_abort。
呼叫功能 'BAPI_TRANSACTION_ROLLBACK'。
ELSE。
通话功能'BAPI_TRANSACTION_COMMIT'。
等待最多1秒。
ENDIF。
*
* *的更新结构 检查/执行
如果is_form_identifier-ei_ins_rprt_po = abap_true或
is_form_identifier-ei_exp_rprt_po = abap_true。 = es_dir_dtls-dokvr。
xs_eirptdms-c_doc_par = es_dir_dtls-doktl。
ENDIF。

*如果es_dir_dtls-doknr不是INITIAL,则更新DIR
的外部编号。 方法update_ext_number
导出
iv_doctype = es_dir_dtls-dokar
iv_docno = es_dir_dtls-doknr
iv_docpart = es_dir_dtls-doktl
iv_docver = es_dir_dtls-doks

。 *提交并更改状态
,如果is_form_identifier-rem_exp_po = abap_true或
is_form_identifier-rem_opp_po = abap_true或
is_form_identifier-rem_ari_po = abap_true或
is_form_identifier-rem_ap_po_is = abap_true OR
is_form_identifier-rem_del_po = abap_true OR
is_form_identifier-rem_subitem_po = ab ap_true OR
is_form_identifier-urg_del_po = abap_true OR
is_form_identifier-ei_pim_po = abap_true OR
is_form_identifier-ei_ari_po = abap_true OR
is_form_identifier-ei_opp_po = abap_true OR
rp is_form_identifier-ei_exp_rprt_po = abap_true或
is_form_identifier-ei_waiver_po = abap_true或
is_form_identifier-ei_anncmnt_po = abap_true OR
is_form_identifier-rem_rfq = abap_true = <-> OR
is_form_identifier-po_form_price = abap_true或"
is_form_identifier-po_form_unprice = abap_true OR
is_form_identifier-inq_rfq = abap_true OR
is_form_identifier-contract_form = abap_true * 到FC
呼叫方法set_status
导出
iv_documenttype = es_dir_dtls-doknr
iv_documentnumber = es_dir_dtls-doknr
iv_documentpart = es_dir_dtls-doktl
iv_documentversion = es_dir_d_dd vr。
ENDIF。
ENDIF。
*
ELSE。
*创建DIR的新版本
CLEAR es_return。
IF is_form_identifier-cbe_form NE abap_true。
*非CBE表单
呼叫功能'BAPI_DOCUMENT_CREATE2'
导出
documentdata = is_doc
pf_http_dest = c_http_dest
pf_ftp_dest = c_ftp_dest
IMPORTING
文档类型= es_dir_dtls-do = es_dir_dtls-doknr
documentpart = es_dir_dtls-doktl
documentversion = es_dir_dtls-dokvr
return = es_return
表格
特征值= lt_characteristicvalues []

classallocations = xt_class = xt_documentdescriptions []
对象链接= xt_objectlinks []
文档文件= xt_documentfiles []。
ELSE。
* CBE表单
ls_doc = is_doc。
ls_doc用户名= sy-uname。
ls_doc-createdate = sy-datum。
ls_doc-authoritygroup =空间。
*
调用功能'BAPI_DOCUMENT_CREATE2'
导出
documentdata = ls_doc
pf_http_dest = c_http_d est
pf_ftp_dest = c_ftp_dest
导入
documenttype = es_dir_dtls-doknr
documentnumber = es_dir_dtls-doknr
documentpart = es_dir_dtls-doktl
documentversion = es_dir_dtls-doks = d br> TABLES
特征值= lt_characteristicvalues []
类分配= xt_classallocations []
文档描述= xt_documentdescriptions []
对象链接= xt_objectlinks []。
如果es_return-type NA c_msg_error_abort。 执行BAPI来执行提交
调用功能'BAPI_TRANSACTION_COMMIT'。
等待最多1秒。
*
循环xt_documentfiles分配
-documenttype = es_dir_dtls-dokar 。
-documentnumber = es_dir_dtls-doknr。
-documentpart = es_dir_dtls-doktl。
-documentversion = es_dir_dtls-dokvr。
ENDLOOP。
ls_documentfiles>。
清除:es_return。
*检入文档文件
CALL FUNCTION'BAPI_DOC UMENT_CHECKIN2'
导出
文档类型= es_dir_dtls-dokar
文档编号= es_dir_dtls-doknr
documentpart = es_dir_dtls-doktl
documentversion = es_dir_dtls-dokvr
导入
>表格
documentfiles = xt_documentfiles []。
ENDIF。
ENDIF。
*
如果es_return型CA c_error_abort。 "'EA'。
*使用BAPI执行外部回滚
CALL FUNCTION'BAPI_TRANSACTION_ROLLBACK'。
ELSE。
CALL FUNCTION'BAPI_TRANSACTION_COMMIT'。
等待最多1秒。
* **更新其余特征
CLEAR:ls_doc。
ls_doc-documenttype = es_dir_dtls-dokar。
ls_doc-documentversion = es_dir_dtls-dokvr。
ls_doc-documentpart = es_dir_dtls-doktl。
-documentnumber = es_dir_dtls-doknr。
呼叫功能'BAPI_DOCUMENT_CHANGE2'
导出
documenttype = es_dir_dtls-dokarn
documentnumber = es_dir_dtls-doknr
documentpart = es_dir_dtls-dok-r dokvr
documentdata = ls_doc
documentdatax = ls_doc_change
导入
return = es_return
TABLES
classallocations = xt_classallocations []
特征值= xt_characteristicvalues []。
如果es_return- 类型CA c_error_abort。
呼叫功能'BAPI_TRANSACTION_ROLLBACK'。
否则。
呼叫功能'BAPI_TRANSACTION_COMMIT'。
等待最多1 SECONDS。
ENDIF。
如果is_form_identifier-ei_ins_rprt_po = abap_true或
is_form_identifier-ei_exp_rprt_po = abap_true。
xs_eirptdms-c_doc_num = es_dir_dtls-d_s_ds-d_s_dms-doks-doknr。 > xs_eirptdms-c_doc_ver = es_dir_dtls-dokvr。
xs_eirptdms-c_doc_par = es_dir_dtls-doktl。
ENDIF。

*为DIR
IF_es_ok_d_ntl IDR更新DIR
的外部编号
呼叫方法update_ext_number
导出
iv_doctype = es_dir_dtls-doknr
iv_docno = es_dir_dtls-doknr
iv_docpart = es_dir_dtls-doktl
iv_docver = es_dir_dtls。 >
*将DIR的状态设置为FC
呼叫方法set_status
导出
iv_documenttype = es_dir_dtls-dokar
iv_documentnumber = es_dir_dtls-doknr
iv_documentpart = es_dir_dtls-doktl
iv es_dir_dtls-dokvr。
ENDIF。

ENDIF。

一周热门 更多>