如何隐藏票证中的票证状态?

时间:2019-01-02 13:05:44

标签: java status hybris

如何在杂音中隐藏票证状态?杂音中的OTTB有3种状态(打开,进行中,关闭)。我添加了自定义状态已拒绝。产生杂音的逻辑是从店面创建一张票证,然后在票证选项卡中以“ CustomerSupportAgent”身份登录后台时,单击创建的票证,我可以看到3种状态(正在处理,关闭,而我的自定义状态为“ ),当我将状态从处理中更改为关闭时,我会看到2种状态:关闭重新打开 。我希望我的状态为进行中,然后单击已拒绝以查看已拒绝处理中或重新打开,但是< strong>关闭状态不可见。

Hybris进行弹簧贴图以使其可见。

<alias name="csTicketStateTransitionMap" alias="ticketStateTransitionMap"/>
    <util:map id="csTicketStateTransitionMap">
        <entry>
            <key>
                <util:constant static-field="de.hybris.platform.ticket.enums.CsTicketState.NEW"/>
            </key>
            <util:list>
                <util:constant static-field="de.hybris.platform.ticket.enums.CsTicketState.OPEN"/>
                <util:constant static-field="de.hybris.platform.ticket.enums.CsTicketState.CLOSED"/>
            </util:list>
        </entry>
        <entry>
            <key>
                <util:constant static-field="de.hybris.platform.ticket.enums.CsTicketState.OPEN"/>
            </key>
            <util:list>
                <util:constant static-field="de.hybris.platform.ticket.enums.CsTicketState.CLOSED"/>
            </util:list>
        </entry>
        <entry>
            <key>
                <util:constant static-field="de.hybris.platform.ticket.enums.CsTicketState.CLOSED"/>
            </key>
            <util:list>
                <util:constant static-field="de.hybris.platform.ticket.enums.CsTicketState.OPEN"/>
            </util:list>
        </entry>
    </util:map>

当我添加已拒绝

的逻辑时
<alias name="csTicketStateTransitionMap" alias="ticketStateTransitionMap"/>
    <util:map id="csTicketStateTransitionMap">
        <entry>
            <key>
                <util:constant static-field="de.hybris.platform.ticket.enums.CsTicketState.NEW"/>
            </key>
            <util:list>
                <util:constant static-field="de.hybris.platform.ticket.enums.CsTicketState.OPEN"/>
                <util:constant static-field="de.hybris.platform.ticket.enums.CsTicketState.CLOSED"/>
            </util:list>
        </entry>
        <entry>
            <key>
                <util:constant static-field="de.hybris.platform.ticket.enums.CsTicketState.OPEN"/>
            </key>
            <util:list>
                <util:constant static-field="de.hybris.platform.ticket.enums.CsTicketState.CLOSED"/>
            </util:list>
        </entry>

//here I add like hybris logic when click Rejected to see Reopen or In process but not Close
<entry>
            <key>
                <util:constant static-field="de.hybris.platform.ticket.enums.CsTicketState.REJECTED"/>
            </key>
            <util:list>
                <util:constant static-field="de.hybris.platform.ticket.enums.CsTicketState.OPEN"/>
            </util:list>
        </entry>
        <entry>
            <key>
                <util:constant static-field="de.hybris.platform.ticket.enums.CsTicketState.CLOSED"/>
            </key>
            <util:list>
                <util:constant static-field="de.hybris.platform.ticket.enums.CsTicketState.OPEN"/>
            </util:list>
        </entry>
    </util:map>

但是它不起作用。为什么?

我实际上做什么:

我使用B2B接收器,并且有我的自定义插件'customerticketingaddon',它需要扩展名=“ customerticketingfacades”

在我的 customerticketingaddon-items.xml 中,将自定义状态添加到CsTicketState

<enumtype code="CsTicketState" autocreate="false" generate="false" dynamic="true">
            <value code="Rejected"/>
</enumtype>

然后在我的 cusomerticketingaddon-spring.xml 中,执行上面显示的映射。

1 个答案:

答案 0 :(得分:0)

首先,确保您使用后台Spring上下文来定义bean。

扩展地图bean的混合方式是使用Map Extender后台功能-https://help.hybris.com/1811/hcd/94ac56a0aa9f486490bbe1251d994457.html#loio83afe1e428384fa881d687b0baa6ea48

cng:map-extender提供了放置和删除地图条目的功能。

看看ruleenginebackoffice-backoffice-spring

中的示例

原始bean定义

    <alias name="defaultBackofficeCronJobHistoryIncludes" alias="backofficeCronJobHistoryIncludes"/>
<util:map id="defaultBackofficeCronJobHistoryIncludes" key-type="java.lang.String"
          value-type="de.hybris.platform.servicelayer.cronjob.CronJobHistoryInclude">
    <entry key="syncProcesses">
        <bean class="de.hybris.platform.servicelayer.cronjob.CronJobHistoryInclude">
            <property name="jobTypeCode" value="#{T(de.hybris.platform.catalog.model.SyncItemJobModel)._TYPECODE}"/>
        </bean>
    </entry>
    <entry key="excelImportProcesses">
        <bean class="de.hybris.platform.servicelayer.cronjob.CronJobHistoryInclude">
            <property name="jobTypeCode" value="#{T(com.hybris.backoffice.model.ExcelImportJobModel)._TYPECODE}"/>
        </bean>
    </entry>
    <entry key="auditReportGeneratorProcess">
        <bean class="de.hybris.platform.servicelayer.cronjob.CronJobHistoryInclude">
            <property name="cronJobTypeCode" value="#{T(de.hybris.platform.auditreport.model.CreateAuditReportCronJobModel)._TYPECODE}"/>
        </bean>
    </entry>

</util:map>

扩展为

    <cng:map-extender bean="backofficeCronJobHistoryIncludes" xmlns:cng="http://www.hybris.com/cockpitng/spring">
    <cng:put key-type="java.lang.String" value-type="de.hybris.platform.servicelayer.cronjob.CronJobHistoryInclude">
        <entry key="ruleEngineProcesses">
            <bean class="de.hybris.platform.servicelayer.cronjob.CronJobHistoryInclude">
                <property name="jobTypeCode" value="RuleEngineJob"/>
            </bean>
        </entry>
    </cng:put>
</cng:map-extender>