首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无深层结构创造深层实体

无深层结构创造深层实体
EN

Stack Overflow用户
提问于 2020-07-29 09:17:31
回答 1查看 1.4K关注 0票数 0

我想一步通过大量的存储单元。我需要在CREATE_ENTITY方法中同时使用OData服务实现中的所有存储单元(CREATE_ENTITY,或者CREATE_DEEP_ENTITY,或者…?),因为我必须对一些值进行比较。

我试过批量请求。这不起作用,因为每个存储单元都调用了CREATE_ENTITY方法。这样我就可以在每个电话中只访问一个存储单元。

我还搜索了有关deep_entities的教程。但我只找到一些结构很深的东西(头像)。但是我有一个平面结构(键:存储单元),并希望将它作为表/数组传递给我的CREATE_ENTITY方法。在SAPUI5中应该可以这样做。

作为解决办法,我可以将所有存储单元传递到一个字符串中,并将其传递给CREATE_ENTITY方法。但对我来说,这似乎很业余。

下面是我如何调用CREATE方法:

代码语言:javascript
运行
复制
onStartVert: function () {
    this.oContext = this.getModel().createEntry("/LenumIPunktSet", {
        success: this._successSave.bind(this),
        error: this._errorSave.bind(this)
    });
    var oBindingPath = {
        path: this.oContext.getPath()
    };
    this.getView().bindObject(oBindingPath);
    var sLenum;
    for (var i = 0; i < this._data.LePool.length; i++) {
        sLenum = this._data.LePool[i].lenum;
        this.getModel().create("/LenumIPunktSet", {
            lenum: sLenum
        });
    }
    this.getModel().submitChanges();
    this.getRouter().navTo("iPunkt02");
},

CHANGESET_PROCESS方法的签名是:

代码语言:javascript
运行
复制
CT_CHANGESET_DATA   TYPE /IWBEP/IF_MGW_CORE_SRV_RUNTIME=>TY_T_CHANGESET_DATA    
/IWBEP/CX_MGW_BUSI_EXCEPTION        Business Exception
/IWBEP/CX_MGW_TECH_EXCEPTION        Technical Exception

因此,到目前为止,还没有可用的表IT_CHANGESET_REQUEST。我的实体类型只有一个字段(lenum)作为键。

EN

Stack Overflow用户

回答已采纳

发布于 2020-07-30 06:45:09

关键是实现变更集。

DPC_EXT中,重新定义以下三个方法:

方法CHANGESET_BEGIN将激活批处理。

代码语言:javascript
运行
复制
METHOD /iwbep/if_mgw_appl_srv_runtime~changeset_begin.
    cv_defer_mode = 'X'.
ENDMETHOD.
代码语言:javascript
运行
复制
METHOD /iwbep/if_mgw_appl_srv_runtime~changeset_end.
* empty
ENDMETHOD. 

方法changeset_process将包含逻辑。it_changeset_request包含属于此批处理请求的所有实体。

代码语言:javascript
运行
复制
METHOD /iwbep/if_mgw_appl_srv_runtime~changeset_process.
    LOOP AT it_changeset_request ASSIGNING FIELD-SYMBOL(<fs_changeset_request>).
        " <fs_changeset_request>-request_context->get_request_details( ) << which entity is it?
        " <fs_changeset_request>-operation_type << is it CREATE, UPDATE or DELETE?
        " <fs_changeset_request>-entry_provider->read_entry_data( ... ) << read entity into structure
    ENDLOOP.
ENDMETHOD.

有关详细信息,请参阅这个博客

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63150330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档