Plataforma heredada

Definición de flujo de asistente

Debe utilizar un archivo XML para crear la definición de flujo de su asistente. No puede utilizar Extensibility Workbench para crear o personalizar asistentes. Para conocer las distintas propiedades de wizard.xml, consulte el archivo XML de ejemplo del asistente de selección de clientes.

Los diversos componentes de una definición de flujo de asistente son los siguientes:
  • Página-La parte visible del asistente. Cada página debe tener un ID exclusivo dentro del asistente.
  • Regla-Determina el flujo del asistente. Una regla puede llevar a la siguiente página de un asistente u otra regla. También puede llevar a una transición que conecte el flujo del asistente. La transición se puede producir para una página a página, de página a regla, de regla a página o de regla a regla.
  • Controlador de flujo: controla el flujo del asistente. Determina la siguiente entidad de asistente que se muestra o evalúa basándose en la entidad de actividad actual.

    Cualquier controlador de asistente debe ampliar ISCUIWizardFlowController. La clase de controlador de asistente predeterminada es com.sterlingcommerce.ui.web.platform.wizard.SCUIDefaultWizardController. La clase de programa de utilidad de controlador de flujo de asistente orquesta el flujo que se basa en la definición. Puede conectar su propio controlador de flujo o utilizar el controlador de flujo predeterminado.

Ejemplo: Archivo XML del asistente de selección de clientes

<wizards>
 <wizard id="wsc.shipment.wizards.CustomerPickupWizard" 
flowController="com.sterlingcommerce.ui.web.platform.wizard.SCUIDefaultWizardController" 
independentPages="false" finishImpl="/wsc/manageWizard.do">
 <wizardEntities>
  <wizardEntity id="FirstPageRule" impl="java:com.ibm.wsc.shipment.customerpickup.rules.CustomerPickupFirstPageWizardRule" 
start="true" last="false" type="RULE">
	 <output value="ValidShipmentStatus"/> 
	 <output value="InvalidShipmentStatus"/> 
	 <output value="InvalidShipmentShipNode"/> 
</wizardEntity>
  <wizardEntity id="CustomerIdentification" screenId="wsc.shipment.customerpickup.CustomerIdentification" 
impl="/platform/jsps/dojo/xapiajaxsuccesshandler.jsp" 
  start="false" last="false" type="PAGE" category="Identification"/>
  <wizardEntity id="ProductVerification" screenId="wsc.shipment.customerpickup.ProductVerification" 
impl="/platform/jsps/dojo/xapiajaxsuccesshandler.jsp" start="false" last="false" type="PAGE" category="Verification"/> 
  <wizardEntity id="AfterPVRule" impl="java:com.ibm.wsc.shipment.customerpickup.rules.CustomerPickupAfterPVWizardRule" 
start="false" last="false" type="RULE"> 
     <output value="Resolution"/>
     <output value="Summary"/>
  </wizardEntity>
  <wizardEntity id="Resolution" screenId="wsc.shipment.customerpickup.Resolution" impl="/platform/jsps/dojo/xapiajaxsuccesshandler.jsp"
start="false" last="false" type="PAGE" category="Resolution"/>
  <wizardEntity id="Summary" screenId="wsc.shipment.customerpickup.Summary" impl="/platform/jsps/dojo/xapiajaxsuccesshandler.jsp"
start="false" last="false" type="PAGE" category="Summary"/?
  <wizardEntity id="InvalidShipmentStatus" screenId="wsc.shipment.customerpickup.InvalidShipment" screenMode="InvalidShipmentStatus"
impl="/platform/jsps/dojo/xapiajaxsuccesshandler.jsp" start="false" last="true" type="PAGE" category="InvalidShipment"/>
  <wizardEntity id="InvalidShipmentShipNode" screenId="wsc.shipment.customerpickup.InvalidShipment"
screenMode="InvalidShipmentShipNode" impl="/platform/jsps/dojo/xapiajaxsuccesshandler.jsp" start="false" last="true" type="PAGE" category="InvalidShipment"/>
</wizardEntities>
<wizardTransitions>
   <wizardTransition id="Transition1" source="FirstPageRule">
     <output target="CustomerIdentification" value="ValidShipmentStatus"/>
     <output target="InvalidShipmentStatus" value="InvalidShipmentStatus"/>
    <output target="InvalidShipmentShipNode" value="InvalidShipmentShipNode"/>
   </wizardTransition>
   <wizardTransition id="Transition2" source="CustomerIdentification" target="ProductVerificaton"/>
   <wizardTransition id="Transition3" source="ProductVerification" target="AfterPVRule"/>
   <wizardTransition id="Transition4" source="AfterPVRule">
     <output target="Resolution" value="Resolution"/>
     <output target="Summary" value="Summary"/>
   </wizardTransition>
   <wizardTransition id="Transition5" source="Resolution" target="Summary"/>
</wizardTransitions>
<categories>
   <category id="Identification" description="" style="simple"/>
   <category id="Verification" description="" style="simple"/>
   <category id="Resolution" description="" style="simple"/>
   <category id="Summary" description="" style="simple"/>
</categories>
</wizard>
</wizards>

Elemento de asistente

Puede especificar el elemento de asistente como se indica a continuación:
<wizard id="wsc.shipment.wizards.CustomerPickupWizard" 
flowController="com.sterlingcommerce.ui.web.platform.wizard.
SCUIDefaultWizardController" 
independentPages="false" finishImpl="/wsc/manageWizard.do>

La tabla siguiente describe los atributos de un elemento de asistente:

Tabla 1. Atributos XML utilizados para especificar un asistente

La tabla siguiente describe los atributos de un elemento de asistente.

Atributo XML Obligatorio Descripción
ID Y Indica un identificador de asistente exclusivo.
flowController Y Indica el controlador de flujo para el asistente. El controlador de flujos realiza las acciones siguientes:
  • Determina la siguiente entidad que se va a evaluar basándose en la entidad actual.
  • Proporciona prestaciones de navegación básicas al asistente.
  • Maneja las llamadas siguientes y anteriores.
independantPages Y Indica si las páginas del asistente son independientes entre sí. Los valores posibles son:
  • True-Indica que las páginas del asistente son independientes.
  • False-Indica que las páginas del asistente son dependientes.
Ampliable N Indica si el asistente es ampliable. De forma predeterminada, todos los asistentes son ampliables. Los valores posibles son:
  • True-Indica que el asistente es extensible.
  • False-Indica que el asistente no se puede ampliar.

Entidad de página de asistente

Puede especificar la entidad de página de asistente como se indica a continuación:
<wizardEntity id="CustomerIdentification" screenId="wsc.shipment.customerpickup.CustomerIdentification"
impl="/platform/jsps/dojo/xapiajaxsuccesshandler.jsp"
start="false" last="false" type="PAGE" category="Identification"/>
La tabla siguiente describe los atributos que se utilizan para especificar una página:
Tabla 2. Atributos XML utilizados en el elemento wizardEntity para especificar una página
Atributo XML Obligatorio Descripción
ID Y Indica un identificador de página exclusivo para una página del asistente
impl Y Indica la acción jsp o struts, que representa la página.
screenId N Indica el nombre de clase de la pantalla que se visualiza en la página.
start N Indica si la página es la primera página del asistente. Los valores posibles son los siguientes:
  • True-indica que la página es la primera o la primera página del asistente.
  • False-indica que la página no es el inicio ni la primera página del asistente.
último N Indica si la página es una última página del asistente. Los valores posibles son:
  • True-indica que la página es la última página del asistente.
  • False-indica que la página no es la primera página del asistente.
Tipo Y Indica si wizardEntity define una página o regla. Los valores posibles son:
  • PÁGINA
  • REGLA
categoría N Indica la categoría a la que pertenece la página. Este atributo se utiliza para breadcrumbs.

Entidad de regla de asistente

Una regla de asistente realiza cálculos lógicos para evaluar varios valores de salida. El flujo de un asistente depende de los valores de salida definidos.

Puede especificar las reglas del asistente como se indica a continuación:
<wizardEntity id="FirstPageRule" impl="java:com.ibm.wsc.shipment.customerpickup.rules.CustomerPickupFirstPageWizardRule"
start="true" last="false" type="RULE">
  <output value="ValidShipmentStatus"/>
  <output value="InvalidShipmentStatus"/>
  <output value="InvalidShipmentShipNode"/>
</wizardEntity>

La tabla siguiente describe los atributos de una regla de asistente:

Tabla 3. Atributos XML utilizados en el elemento wizardEntity para especificar una regla del asistente

La tabla siguiente describe los atributos de una regla de asistente.

Atributo XML Obligatorio Descripción
ID Y Indica un identificador de regla exclusivo para una regla en el asistente
impl Y La clase Java debe implementar la interfaz com.sterlingcommerce.ui.web.platform.wizard.ISCUIWizardRule . Puede utilizar el programa de utilidad install3rdParty para añadir archivos JAR personalizados de terceros a la vía de acceso de clases de diversos programas de utilidad y archivos EAR (Enterprise Archive).

Por ejemplo, impl=java:com.ibm.wsc.shipment.customerpickup.rules.CustomerPickupFirstPageWizardRule es la regla del asistente que proporciona la implementación.

start N Indica si la regla es la primera regla del asistente. Los valores posibles son:
  • True-indica que la regla es la primera regla o la primera regla del asistente.
  • False-indica que la regla no es el inicio o la primera regla del asistente.
último N Indica si la regla es una última regla del asistente. Los valores posibles son:
  • True-indica que la regla es la última regla del asistente.
  • False-indica que la regla no es la primera regla del asistente.
Tipo Y Indica si wizardEntity define una página o una regla. Los valores posibles son:
  • PÁGINA
  • REGLA
salida N Indica la serie de retorno posible para una regla. El valor indica la siguiente página de una transición de asistente. La regla del asistente se puede definir para salir del flujo del asistente como <output value="-1" type="exit" />.
Nota: Si Java devuelve una serie que no coincide con los valores de salida, elSCUIWizardRuleHolder: Undeclared output from implementationse produce una excepción.

Elemento de transición de asistente

La transición de asistente se utiliza para transferir el control de una entidad de asistente a otra entidad de asistente. El valor de transición del asistente se compara con la salida de la regla del asistente y el control se transfiere a la siguiente entidad del asistente. Puede definir el mismo identificador de transición de asistente para varias transiciones de asistente, que están asociadas con distintos valores.

Puede especificar la transición del asistente como se indica a continuación:
<wizardTransitions>
<wizardTransition id="Transition1" source="Rule1">
	 <output target="Page1" value="1"/>
   <output target="Page2" value="2"/>
   <output target="Page7" value="3"/>
</wizardTransition>
</wizardTransition>
O
<wizardTransitions>
<wizardTransition id="Transition2" source="Page1" target="Page3">
</wizardTransition>

La tabla siguiente describe los atributos que se utilizan para definir un Transition:

Tabla 4. Atributos XML utilizados en el elemento wizardTransition

En la tabla siguiente se describen los atributos que se utilizan para definir un Transition.

Atributo XML Obligatorio Descripción
ID Y Indica un identificador de transición exclusivo.
origen Y Indica el identificador de la entidad de origen desde la que se origina la transición.
salida N Obligatorio, si el atributo de origen es un Rule. Este atributo se utiliza para determinar la transición de una página a otra. Basándose en el valor devuelto por la regla, la transición se aplica a las páginas definidas en el atributo target . Por ejemplo, si <output target="Page1" value="1"/>, y si la regla devuelve el valor como 1, el asistente realiza la transición a Page1.
destino Y El atributo de destino indica el identificador de la entidad donde finaliza la transición.