
在传统的SAP Gateway Foundation项目里,有一类创建操作很容易在开发初期被当成普通的POST请求处理,真正开始写DPC_EXT代码时才会发现事情没有那么简单。一个销售订单不只有抬头,一张采购申请不只有主记录,一个CRM Opportunity也可能同时携带合作伙伴、产品或者其他关联数据。前端希望只发一次请求,后端则希望在同一个业务事务里把整棵对象树创建出来,这正是Deep Insert要解决的问题。在经典SAP Gateway ODataRuntime 中,这项能力的关键入口就是/IWBEP/IF_MGW_APPL_SRV_RUNTIME~CREATE_DEEP_ENTITY。直到目前的SAP Gateway Foundation官方文档中,/IWBEP/IF_MGW_APPL_SRV_RUNTIME、/IWBEP/IF_MGW_ENTRY_PROVIDER、/IWBEP/IF_MGW_ODATA_EXPAND和/IWBEP/CL_MGW_ABS_DATA仍然被列在OData Channel Runtime APIs体系中。理解这个方法时,我通常不会从方法参数表开始,而是先把一次请求在 Runtime 里的运动过程想清楚。普通创建请求比较简单。Consumer 向某个 Entity Set 发起POST