Definizione del flusso della procedura guidata
È necessario utilizzare un file XML per creare la definizione di flusso della procedura guidata. Non è possibile utilizzare il Workbench di estendibilità per creare o personalizzare le procedure guidate. Per comprendere le varie proprietà di wizard.xml, consultare il file XML di esempio della procedura guidata Customer Pick.
- Pagina - La parte visibile della procedura guidata. Ogni pagina deve avere un ID univoco all'interno della procedura guidata.
- Regola - Determina il flusso della procedura guidata. Una regola può portare alla pagina successiva in una procedura guidata o in un'altra regola. Può anche portare a una transazione che connette il flusso della procedura guidata. La transizione può verificarsi per un page - to - page, page - to - rule, rule - to - page o rule - to - rule.
- Controller di flusso - guida il flusso della procedura guidata. Determina l'entità della procedura guidata successiva che viene visualizzata o valutata in base all'entità dell'attività corrente.
Qualsiasi controller della procedura guidata deve estendere
ISCUIWizardFlowController. La classe del controller della procedura guidata predefinita ècom.sterlingcommerce.ui.web.platform.wizard.SCUIDefaultWizardController. La classe di utilità del controller di flusso della procedura guidata organizza il flusso basato sulla definizione. È possibile collegare il proprio controller di flusso o utilizzare il controller di flusso predefinito.
Esempio: file XML della procedura guidata "Selezione cliente"
<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 procedura guidata
<wizard id="wsc.shipment.wizards.CustomerPickupWizard"
flowController="com.sterlingcommerce.ui.web.platform.wizard.
SCUIDefaultWizardController"
independentPages="false" finishImpl="/wsc/manageWizard.do>La seguente tabella descrive gli attributi di un elemento della procedura guidata:
| Attributi XML | Obbligatorio | Descrizione |
|---|---|---|
| id | Y | Indica un identificativo univoco del wizard. |
| flowController | Y | Indica il controller di flusso per la procedura guidata. Il controller di flusso effettua le seguenti azioni:
|
| independantPages | Y | Indica se le pagine della procedura guidata sono indipendenti l'una dall'altra. I valori possibili sono i seguenti:
|
| estendibile | N | Indica se la procedura guidata è estensibile. Per impostazione predefinita, tutte le procedure guidate sono estensibili. I valori possibili sono i seguenti:
|
Entità pagina della procedura guidata
<wizardEntity id="CustomerIdentification" screenId="wsc.shipment.customerpickup.CustomerIdentification"
impl="/platform/jsps/dojo/xapiajaxsuccesshandler.jsp"
start="false" last="false" type="PAGE" category="Identification"/>| Attributi XML | Obbligatorio | Descrizione |
|---|---|---|
| id | Y | Indica un identificativo di pagina univoco per una pagina nella procedura guidata |
impl |
Y | Indica l'azione jsp o struts, che esegue il rendering della pagina. |
| screenId | N | Indica il nome classe dello schermo visualizzato nella pagina. |
start |
N | Indica se la pagina è la prima pagina della procedura guidata. I valori possibili sono i seguenti
|
| Ultimo | N | Indica se la pagina è l'ultima pagina della procedura guidata. I valori possibili sono i seguenti:
|
| tipo | Y | Indica se wizardEntity definisce una pagina o una regola. I valori possibili sono i seguenti:
|
| categoria | N | Indica la categoria a cui appartiene la pagina. Questo attributo viene utilizzato per breadcrumbs. |
Entità regola procedura guidata
Una regola della procedura guidata esegue calcoli logici per valutare vari valori di output. Il flusso di una procedura guidata dipende dai valori di output definiti.
<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 seguente tabella descrive gli attributi di una regola della procedura guidata:
| Attributi XML | Obbligatorio | Descrizione |
|---|---|---|
| id | Y | Indica un identificativo di regola univoco per una regola nella procedura guidata |
impl |
Y | La classe Java deve implementare l'interfaccia com.sterlingcommerce.ui.web.platform.wizard.ISCUIWizardRule . È possibile utilizzare l'utilità install3rdParty per aggiungere file JAR personalizzati di terze parti al percorso di classe di vari programmi di utilità e file EAR (enterprise archive).Ad esempio, |
start |
N | Indica se la regola è la prima regola nella procedura guidata. I valori possibili sono i seguenti:
|
| Ultimo | N | Indica se la regola è l'ultima regola della procedura guidata. I valori possibili sono i seguenti:
|
| tipo | Y | Indica se wizardEntity definisce una pagina o una regola. I valori possibili sono i seguenti:
|
| emissione | N | Indica la possibile stringa di ritorno per una regola. Il valore indica la pagina successiva in una transizione della procedura guidata. La regola della procedura guidata può essere definita per uscire dal flusso della procedura guidata come <output value="-1" type="exit" />.Nota: se Java restituisce una stringa che non corrisponde ai valori di output,SCUIWizardRuleHolder: Undeclared output from
implementationsi verifica un'eccezione. |
Elemento di transizione della procedura guidata
La transizione della procedura guidata viene utilizzata per trasferire il controllo da un'entità della procedura guidata ad un'altra. Il valore di transizione della procedura guidata viene confrontato con l'output della regola della procedura guidata e il controllo viene trasferito all'entità della procedura guidata successiva. È possibile definire lo stesso identificatore di transizione della procedura guidata per più transizioni della procedura guidata, associate a valori diversi.
<wizardTransitions>
<wizardTransition id="Transition1" source="Rule1">
<output target="Page1" value="1"/>
<output target="Page2" value="2"/>
<output target="Page7" value="3"/>
</wizardTransition>
</wizardTransition>Oppure<wizardTransitions>
<wizardTransition id="Transition2" source="Page1" target="Page3">
</wizardTransition>La seguente tabella descrive gli attributi utilizzati per definire un Transition:
| Attributi XML | Obbligatorio | Descrizione |
|---|---|---|
| id | Y | Indica un identificativo di transazione univoco. |
| Origine | Y | Indica l'identificativo dell'entità di origine da cui ha origine la transizione. |
| emissione | N | Obbligatorio, se l'attributo di origine è un Rule. Questo attributo viene utilizzato per stabilire la transizione da una pagina all'altra. Sulla base del valore restituito dalla regola, la transizione viene applicata alle pagine definite nell'attributo target . Ad esempio, se <output target="Page1" value="1"/>e se la regola restituisce il valore 1, la procedura guidata effettua la transizione a Page1. |
| destinazione | Y | L'attributo di destinazione indica l'identificativo dell'entità in cui termina la transizione. |