本文主要收集了与集成扩展相关的常见问题(2021年4月 – 2021年6月),按照主要问询对象API,CDS View,CPI,自定义字段和逻辑以及集成相关对常见问题进行了大致的分类。每一类对象下又进行了问题性质的分类,例如:功能缺失,操作和实施以及配置相关问题等。客户可以点击下方链接查看到相关问题。
Contents
API
功能缺失相关问题
- 问题:SAP在前台操作可实现生产订单收货,UD拒绝时,需要把货物放到冻结库房(不能直接退回到生产订单),但在与MES做对接,UD需要通过API来实现,目前SAP标准的API接口未找到UD拒绝的收货直接放置到冻结库。API API_INSPECTIONLOT_SRV没有字段blocked stock。
解答:当前该API不支持,需要到Customer Influence Portal提交新的request。
- 问题:在更改OData API API_PRODUCTION_ORDER_2_SRV里的BASICSCHEDULINGTYPE时显示错误消息不允许。
解答:字段BASICSCHEDULINGTYPE在API里面是只读的,需要到Customer Influence Portal提交新的request。
- 问题:使用API API_PRODUCTION_ROUTING做component allocation,但是只是first level component成功了,其他level的component都失败了。
解答:API API_PRODUCTION_ROUTING只支持first level component的component allocation,不支持multiple level components。
- 问题:使用API “API Journal Entry – Post”来post客户或供应商的payment document,但是找不到field credit area for customer,而在app “Post with Clearing”是可以做的。
解答:当前API不支持,需要到Customer Influence Portal提交新的request。
- 问题: API API_BILL_OF_MATERIAL_SRV_0002是否支持替换entity A_BOMWhereUsed?
解答:当前API不支持,需要到Customer Influence Portal提交新的request。
- 问题:用API API_PURCHASEORDER_PROCESS_SRV来创建UB(transport order),但是出错。
解答:当前标准功能不支持。OData API支持NB(standard)和ZNB(客户自定义的PO)。
- 问题:是否可通过API API_BILL_OF_MATERIAL_SRV来更改字段BOMIsToBeDeleted(No=>Yes)?
解答:这个字段不支持API更改,这个字段是标准配置的一个字段,暴露在API里是只读的。
操作和实施相关问题
- 问题:想通过外部系统调用 API,以将组件分配到工艺路线中的工序。经尝试,如果工序没有历史记录分配记录,则可以成功;如果工序存在历史记录分配记录,则 API 将反馈分配失败。S4HC 系统支持重新分配具有历史记录分配记录的工序。想咨询API API_PRODUCTION_ROUTING是否支持外部系统调用重新分配组件?
解答:可考虑使用 API API_PRODUCTION_ROUTING 的实体 /ProductionRoutingOpCompAlloc
该API支持 PATCH 操作。以下文档供参考:
https://api.sap.com/api/API_PRODUCTION_ROUTING/resource
- 问题:同时更新两个交货凭证,两个凭证参考的是相同的销售订单,产生错误消息 MC/601指示其中一个交货凭证由其他用户锁定。
解答:无法同时更新两个交货,因为两者都参考同一销售订单。在处理交货凭证时,必须锁定销售订单以避免数据库不一致。这是系统的标准行为。从技术角度来看,有两种可能的解决方案。
1) 如果要同时更新两个交货,请不要交付包含两个不同交货单据的相同销售订单。如果更新一个交货凭证,则将锁定指向同一销售订单的所有交货凭证。
2) 不要同时更新交货,而是在请求之间延迟几秒后按顺序进行。如果出现临时锁定问题,应始终具有重新触发请求的逻辑。
- 问题:使用API在物料清单中插入条目时出现了问题。
解答:请使用当前版本的 API(版本 2)更新或创建 BOM
https://api.sap.com/api/API_BILL_OF_MATERIAL_SRV_0002/overview
- 问题:在“维护业务伙伴”应用中,需要更改或修改第三方系统中的“有效期至”字段。想要知道哪个 API 可以更改信用管理角色的“有效期至”字段?
解答:通过以下SOAP API,可以更新信用管理角色的字段:https://help.sap.com/viewer/3c916ef10fc240c9afc594b346ffaf77/2105.500/en-US/57b053dde37b43ccb8752d6ed162c116.html
- 问题:实施了WMS系统,想要在S4HC这边更新batch split。但是API API_CUSTOMER_RETURNS_DELIVERY_SRV只能更新ActualDeliveryQuantity。
解答:有一个SOAP API Split Outbound Delivery – Receive from Warehouse (B2B),技术名SplitOutboundDelivery_In。
链接为https://help.sap.com/viewer/588780cab2774a7ab9fffca3a7f919fe/2111.500/en-US/e3266b6dbcfe4b93870287fe76e4a80b.html,这个属于scope item 1ZQ。但如果1ZQ不能满足,则需要给API API_CUSTOMER_RETURNS_DELIVERY_SRV提新需求。
- 问题:使用API API_PURCHASEORDER_PROCESS_SRV调取PO的数据,发现一次只能调取1000条。
解答:这个API的默认返回值是1000,如果客户使用$top参数则最多可以返回5000。
- 问题:如何使用采购申请OData API(API_PURCHASEREQ_PROCESS_SRV)来在行项目上面创建item note?
解答:可以参考帮助链接:https://blogs.sap.com/2020/06/16/purchase-requisition-odata-api-episode-4/
- 问题:使用PO的Odata API(API_PURCHASEORDER_PROCESS_SRV)去读数,只读出了1000条左右,但实际上应该有8000多条。
解答:PO的API不能一次读取所有的数据,因为数据量太大。建议要增加一些过滤条件。比如下面的例子增加了时间的过滤条件:/sap/opu/odata/sap/API_PURCHASEORDER_PROCESS_SRV/A_PurchaseOrder?$expand=to_PurchaseOrderItem&$filter=CreationDate gt datetime’2021-04-24T00:00:00′
- 问题:想要获得数据库的访问权限拿到所有数据,到第三方系统出报表。目前是基于自定义CDS获得数据。
解答:是跟第三方WMS系统做集成的话,应该参考scope item 1ZQ。
- 问题:发现production order的OData API(API_PRODUCTION_ORDERS)被弃用,然后这个API在communication scenario SAP_COM_0104里面,现在使用SAP_COM_0104里的Idoc的方式outbound production order。想知道Idoc会不会受影响?
解答:API_PRODUCTION_ORDERS已被弃用,已经出了新版本API_PRODUCTION_ORDER_2_SRV。Odata API是inbound的,然后Idoc是outbound的,Idoc的方式在SAP_COM_0104里可以继续正常使用,不会受影响。
- 问题:生产订单的API(API_PRODUCTION_ORDERS)已经被deprecated了,替换的新的API(API_PRODUCTION_ORDER_2_SRV)里面没有MaterialName这个字段,影响到与第三方系统的集成。
解答:因为物料名称MaterialName这是一个依赖语言的字段,可能会有多个描述,所以不在生产订单的API里提供。客户有两种可能的解决方案:
- 通过API_PRODUCT_SRV来得到text文本信息,entity /A_Product(‘{Product}’)/to_Description会返回所有语言的物料描述信息。
- 客户可以使用复制的机制来提前buffer物料文本信息:使用这个SOAP API https://api.sap.com/api/CO_MDM_PRD_BULK_REPL_REQ_OUT/overview
- 问题:自定义了一个CDS,发布成API,但是有SAP Gateway Error Log。
解答:报的错是<Text>Overflow converting from ‘3234675478.90 ‘</Text>,数字溢出了。但是原因是由于客户没有在自定义CDS View里面维护字段NetPriceAmount的unit。
- 问题: API API_BILL_OF_MATERIAL_SRV_0002不能修改BOM Item,想要问怎么做到?
解答:如果需求是想要替换BOM里的一个component,首先使用/MaterialBOMitem来删除BOM的item,然后使用/MaterialBOMitem的POST方法来增加替换的component。
- 问题:调用API API_INFORECORD_PROCESS_SRV/A_PurchasingInfoRecord做POST操作,创建PIR。接口返回成功,但页面显示不正确
解答:在info record的payload里面,必须创建pricing condition数据。Payload里面没有这些数据,所以有问题。可以参考API链接里的sample code:https://api.sap.com/api/API_INFORECORD_PROCESS_SRV/resource
- 问题:想要通过API API_INFORECORD_PROCESS_SRV来创建一个新的condition,有新的valid from,valid to,amount和pricing unit。想问怎么做?
解答:关于具体实施方法,可以参考KBA 3039829,里面有sample code:https://i7p.wdf.sap.corp/sap/support/notes/3039829
或者参考API地址:https://api.sap.com/api/API_INFORECORD_PROCESS_SRV/overview
- 问题:有一个外部系统要调用S/4HANA Cloud,一直没有问题的,也没有版本更新,突然之间请求都timeout了。
解答:基于客户的描述和代码,客户从SAP_SESSION里取cookie。大多数系统这个默认值设为了100,也就是说在同一个session里最多能取100次cookie,超过100次之后需要关闭现有的session,开一个新的session来获取cookie。建议修改代码,当cookie取不到的时候,关闭当前session。
- 问题:Purchase Order的数据不能通过API从S/4HANA Cloud传输到外部系统了。请求地址类似于:https://myXXXXXXXX.saps4hanacloud.cn/sap/opu/odata/sap/API_PURCHASEORDER_PROCESS_SRV/A_PurchaseOrder?$filter=CreationDate ge datetime’2021-06-06T00:00:00′ and CreationDate le datetime’2021-06-07T00:00:00′ &%24expand=to_PurchaseOrderItem&saml2=disabled”
解答:请求的返回数据太多了,超过了40多MB,至少3646条PO记录,超过了REST客户端能接收的范围。建议把请求返回缩小到能接收的范围。
配置相关问题
- 问题:使用API API_PURCHASEREQ_PROCESS_SRV来创建一个采购申请的时候,碰到错误ME038。
解答:这是一个用户配置错误导致的问题,就算在前台APP或者WEBGUI里创建一样会碰到这个问题。KBA 2483544里有说明,或者查看GL Account的说明文档:https://help.sap.com/viewer/0fa84c9d9c634132b7c4abb9ffdd8f06/LATEST/en-US/87e8b621685f4f8591078b9dc8840b78.html
CPI
操作和实施相关问题
- 问题:自定义的CDS发布成API,并在CPI中进行了封装。想要输出格式为XML,但是SAP的默认输出接口格式为 JSON。
解答:请将 JSON 添加到 XML 转换器以将 JSON 转换为 XML。
可以参考:KBA 2478282 – CPI JSON to XML Converter Component Limitations。
CDS View
操作和实施相关问题
- 问题:建自定义分析维度(DIM)的CDS时,只有采购申请表头与明细时都报错,错误内容:元素PurchaseRequisitionItem必须具有与主数据视图的关联
解答:数据源 I_PurchaseRequisitionItemAPI01 或 I_PurchaseRequisitionAPI01 无法用作分析维度,根本原因在于它们不是设计分析维度使用所需的主数据视图。
可查看KBA 3038787来回答此问题,也可以在note 2657021 中查看分析维度的需求详细信息。
3038787 – Fail to create Analytical Dimension with error message “Element xxx must have an association with master data view” – Custom CDS Views
https://launchpad.support.sap.com/#/notes/3038787
2657021 – Creating Custom CDS Views for Analytical Scenarios
https://launchpad.support.sap.com/#/notes/2657021
- 问题:是否有 CDS 视图可以将 BOM 扩展到底层以及可以找到与所有原材料输入相对应的成品的 CDS 视图。
其具有可用于物料清单的 CDS 视图清单。
- 问题:基于 I_FinancialStatementHierNode 创建了自定义 API 类型 CDS 视图,但发现层次结构节点值与 定义财务报表版本中的值不同。
解答:CDS 视图 I_FinancialStatementHierNode 返回来自运行时数据 HRRP,父节点00NOTASSIGNED是未分配到 FSV 的项目,这些信息将存储在 HRPP 表中,因此您将看到这些节点值。 这意味着未分配到当前 FSV 的总账科目将显示 00NOTASSIGNED。
- 问题:请问销售收款用哪个CDS来做主数据源?
解答:我发现一些 CDS 视图包含字段“销售范围”(销售区域)。
您可以参考以下帮助文档。
I_CUSTOMERSALESAREA
I_SALESORDER
对于应收账款,可以使用以下 CDS 视图。
I_TotalAccountsReceivables
I_OverdueAccountsReceivables
I_FutureAccountsReceivables
- 问题:在自定义CDS上无法创建采购应用程序和采购订单查询报表。
解答:在调查之后发现,这个标准的CDS: I_PurchaseRequisitionAPI01适用的场景应该是:分析立方体。
在分析立方体的场景下,不会对主数据视图进行检查,但是要求至少选择一个可以作为度量(Measure)的元素,例如OrderedQuantity,ItemNetAmount等,并且在元素属性中,针对该项目进行一个聚合类型的选择,例如总和。
另外您需要注意的是,针对您选择的度量元素,需要同样选择其需要展示的度量单位,例如货币。
您可以试一下去重新创建一个新的分析场景。
- 问题:想了解日记账分录分析器应用基于哪些CDS
解答:应用 日记账分录分析器 基于查询 日记账分录分析器 (技术名称:C_GLLineItemsQ0001)和 CDS 视图 I_GLAccountLineItemCube 。
应用 显示总账中的行项目 基于 C_JournalEntryItemBrowser CDS 视图。
- 问题:希望了解哪个 CDS 视图可在中找到“原因代码”和“描述”字段以验证配凭证银行数据是否正确。
解答:字段“原因代码”在 CDS 视图 I_JournalEntryItem、I_JournalEntryItemCube、I_JournalEntryItemBrowser、I_JournalEntryItemBasic 中不可用,因为它不属于基础数据库表 ACDOCA。为此,您需要使用 以下路径的视图:
I_OplAcctgDocumentItemBrowser | I_OperationalAcctgDocCube | I_OperationalAcctgDocItem
详情也可参考:https://answers.sap.com/questions/13248753/view.html
自定义字段和逻辑
操作和实施相关问题
- 问题:在测试系统(Q)中,管理产品主数据的用户自定义字段未显示,但是在生产系统(P)是正常的。
解答:在管理产品主数据 中,如果要将字段添加到管理产品主数据 ,请使用个性化菜单中的“调整 UI”选项。SAP Cloud Community 上有一篇博客https://s4hanacloud.community.sap/blogs/show/zsc5qIhvDF53OetNOXRsPq可能会有所帮助。
请按照步骤 10 开始操作。
功能缺失相关问题
- 问题:希望通过 API 更新生产订单上的自定义字段并且 OData API 在此自定义字段中设置为“已启用”,但无法通过 API 对其进行更新。
解答:目前,只能通过 API_PRODUCTION_ORDER_2_SRV/A_ProductionOrder_2 读取自定义字段。
尚不支持更改。
您可以在KBA 提出您的请求,以便在未来版本中开发:
2712608 – 如何提交 SAP S/4 HANA Cloud 产品中制造的功能请求
https://launchpad.support.sap.com/#/notes/2712608
集成相关
操作和实施相关问题
- 问题:已为分散式仓库管理系统集成与 SAP ECC(设置为分散和 S4HC进行了集成。所有 WMS 接口使用的是 IDoc。听说 SAP 将废除 IDoc,如果 API 发布,是否意味着一年后将无法使用 IDoc?或者 SAP 是否只是不维护 IDoc,但仍可使用?如果 SAP 计划废除 IDoc,SAP是否会提前通过电子邮件通知?
解答:在 S/4HANA Cloud 中没有废除任何 IDoc 的计划。您仍然可以在 S4HC 和 SAP ECC 之间使用它们,但将来不会对其进行扩展。如前所述,IDoc 不是 SAP 的目标(未来)技术,目标技术是 oData、SOAP、MDI、Events,但我们将需要为我们提供的技术(包括 IDocs)提供维护。SAP 建议使用现代 API 更快地使用创新,但 IDoc 将再次保留。
以上为本次分享的全部内容。若想要了解往期更多有关集成扩展的常问问题,可以点击下方链接进行查看:
- S/4HANA Cloud集成与扩展FAQ(2020年6月 – 2020年8月):click here.
- S/4HANA Cloud集成与扩展FAQ(2020年3月 – 2020年5月):click here.
- SAP S/4HANA Cloud集成与扩展FAQ(2020年09月 – 2020年11月): click here.
- SAP S/4HANA Cloud集成与扩展FAQ(2020年12月 – 2021年3月):click here