SAP document builder一些常见问题的解答

如果要想把DOCX render成PDF 格式,需要server上部署了ADS Adobe document service。用report FP_PDF_TEST_00 检查ADS是否setup 正确 。
如果能看到下面的ADS version信息说明已经ready。

SAP document builder一些常见问题的解答

下图是一个我们系统里SM59 指向的ADS destination

SAP document builder一些常见问题的解答

       附件的第21页的note有详细的consume ADS的说明。

SAP document builder一些常见问题的解答

Reviewe的用途:
用SM30, 编辑这个view SWFDEVENA,

SAP document builder一些常见问题的解答

这里SAP 提供了一个很灵活的框架可以让我们把document 上发生的事件和一个workflow 绑定起来,我们可以自行开发一些workflow来响应这些事件。

SAP deliver的标准的workflow里有和review发生交互的:

SAP document builder一些常见问题的解答

这个workflow只是增加了一部自动给review 发邮件提示其去review以及reviewer手动处理的流程。自动发邮件和reviewer 处理分别有SAP标准的BOR object SELFITEM和DECISION实现。

SAP document builder一些常见问题的解答
SAP document builder一些常见问题的解答

Navigation 失败的问题。像此类问题我一般用debug的方式找到原因:系统去CRMC_IB_BOR_UIOB里面找entry,

SAP document builder一些常见问题的解答

找不到就报CRM_UIU_CT-022的message。你打上断点然后看SQL 语句的where条件就知道系统想找什么样的entry了,照着维护进去就行。

SAP document builder一些常见问题的解答
SAP document builder一些常见问题的解答

Due icon显示成X:
在这个方法上设断点,

SAP document builder一些常见问题的解答

然后看你系统上icon的url determine出来是怎样的:

SAP document builder一些常见问题的解答

拿到这个url后到SE80, mime repository里去看这个icon的图片是否正确上传了:

SAP document builder一些常见问题的解答

另外, 代码中如何提取出已审批通过的document?
能提供更细节的信息吗?你们希望在什么样的context下写code?
如果你们写代码的上下文里能够拿到content和document ID,可以通过下面的report 拿到文档的内容-存在ls_output-data里面

PARAMETERS: content  TYPE /ipro/tdocmnt-content DEFAULT 'DLA',
document TYPE /ipro/tdocmnt-docmnt_id.
*data: document TYPE /ipro/tdocmnt-docmnt_id value '0000000815'.
DATA:   lt_contents      TYPE /ipro/tt_contents,
lo_content       TYPE REF TO /ipro/if_content,
lo_doc_factory   TYPE REF TO /ipro/if_docb_factory,
lo_document      TYPE REF TO /ipro/if_document,
lv_content       TYPE string,
lo_exception     TYPE REF TO /ipro/cx_serializer_failed_at,
lv_error_text    TYPE string.
lv_content = content.
CALL FUNCTION '/IPRO/CONTENT_FACTORY'
EXPORTING
piv_name     = lv_content
IMPORTING
pet_contents = lt_contents.
READ TABLE lt_contents INTO lo_content INDEX 1.
CHECK lo_content IS BOUND.
lo_doc_factory = lo_content->get_docb_factory( ).
TRY.
lo_document ?= lo_doc_factory->open( piv_docmnt_id = document ).
CATCH /ipro/cx_serializer_failed_at INTO lo_exception.
lv_error_text = lo_exception->get_name( ).
WRITE: /,lv_error_text.
ENDTRY.
data: ls_output  TYPE /IPRO/S_OUTPUT.
WRITE sy-uzeit.
lo_document->/ipro/if_output~enable( '1' ).
ls_output = lo_document->/IPRO/IF_OUTPUT~GENERATE( '1' ).

本文来自云栖社区合作伙伴“汪子熙”,了解相关信息可以关注微信公众号"汪子熙"。