如何在杂音中隐藏票证状态?杂音中的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 中,执行上面显示的映射。
答案 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>