zoukankan      html  css  js  c++  java
  • SAP CRM One order里user status和system status的mapping逻辑

    Below example show: How the mapping relationship between User status and System status maintained in One Order.

    APP: My Opportunity
    Transaction type: OPSM

    First,I create an new Opportunity in WebClientUI, I set the status with E0001( User status).

    新建一个Opportunity,将其status 设置成E0001( User status):

    After I saved the Opportunity, in the DB, I can find both user status E0001 - Open and system status I1002 there.

    保存之后,在数据库里针对该Opportunity不仅仅存储了用户手动选择的user status E0001 - Open,还保存了如下的system status I1002:

    Second,How the mapping relationship between User status and System status maintained in One Order?
    这个user status到system status的mapping 逻辑:
    Step1. Under transaction type OPSM, we can find status profile.

    找到transaction type OPSM 对应的status profile:

    Step2. In the status profile, we can find the business transaction OPEN of user status.
    找到该 user status对应的business transaction OPEN:

    Step3.Based on the business transaction OPEN, we will select system status from TJ06
    where VRGNG = business transaction OPEN
    and INACT not equal X

    系统从step2里取得business transaction之后,根据VRGNG = transaction的逻辑到TJ06里去查找所有结果INACT不为X的entry,结果即为该user status对应的所有system status

    Then,The configure point for table TJ06: tcode BS32
    TJ06 表里的entry通过tcode BS32维护:

    Finally,You can find below 3 steps in below function module.
    上述三步系统的执行逻辑可以通过debug如下的function module来学习:

    再看另一个例子:
    创建Task的时候,可以选择的status是根据Task的status profile来的,最终会看到在Table TJ30中会有各种user status对应task这个transaction,其中就包括released:

    但是在WEB UI新建task的drop down list里面却没有这个user status:

    这是因为在Web UI上,虽然drop down list里面的status是从TJ30来的,但是这期间还有对新建transaction的status check。在Table TJ07或者Tcode BS22中,有对user status和system status之间的mapping:

    其中I1030是system status,它对应的releases这个user status 的配置是forbidden,意思是当transaction上有error的时候,改变transaction的状态到released是被禁止的。所以在Web UI上新建一个task的时候,因为还有很多字段没有维护,所以transaction的system status是contains error - I1030的状态,Page上的每次change操作都会触发状态检查,一旦有I1030这个状态,对应的released user status就会从drop down list中拿掉。

    如果维护了所有必填字段确保transaction没有error,released status就会出现在drop down list中:

    要获取更多Jerry的原创文章,请关注公众号"汪子熙":

  • 相关阅读:
    轻重搭配
    EF的优缺点
    使用bootstrap-select有时显示“Nothing selected”
    IIS发布 HTTP 错误 500.21
    js添加的元素无法触发click事件
    sql server查看表是否死锁
    sql server把一个库表的某个字段更新到另一张表的相同字段
    SQLSERVER排查CPU占用高的情况
    SQL server中如何按照某一字段中的分割符将记录拆成多条
    LINQ to Entities does not recognize the method 'System.DateTime AddDays(Double)' method, and this method cannot be translated into a store expression.
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/10156418.html
Copyright © 2011-2022 走看看