Как скрыть статус билета в hybris? OTTB в hybris есть 3 состояния (открыть, в процессе, закрыть ). Я добавляю свой пользовательский статус Отклонено . Логика, которую делает hybris, заключается в том, что при создании одного билета из витрины, а затем при входе в бэк-офис под именем «CustomerSupportAgent» на вкладке тикета при нажатии на созданный тикет я вижу 3 статуса ( В процессе, закрытие и мой пользовательский статус Отклонено ), и когда я меняю статус с В процессе на Закрыть , тогда я вижу 2 состояния Закрыть и Повторно открыть . Я хочу, чтобы мой статус был В процессе и нажмите Отклонено , чтобы увидеть Отклонено и В процессе или Повторно открыть , но Закрыть статус будет невидимым.
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, для которого требуется расширение name = "customerticketingfacades"
в моем customerticketingaddon-items.xml Я добавляю свой пользовательский статус в CsTicketState
<enumtype code="CsTicketState" autocreate="false" generate="false" dynamic="true">
<value code="Rejected"/>
</enumtype>
Затем в моем cusomerticketingaddon-spring.xml я делаю сопоставление, которое я показал выше.