Warehouse App Task Validation Framework
Transcript of Warehouse App Task Validation Framework
![Page 1: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/1.jpg)
![Page 2: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/2.jpg)
One
PREDICTABLE CONTINUOUS
![Page 3: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/3.jpg)
2 major updates
PREDICTABLE CONTINUOUS
![Page 4: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/4.jpg)
![Page 5: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/5.jpg)
![Page 6: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/6.jpg)
• Xamarin-based application
• Android and Windows 10
• Task Recorder not supported • No RSAT
![Page 7: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/7.jpg)
• Warehouse App Task Validation Framework
• Enables RSAT + Warehouse Mobile
• New UI in Dynamics 365 • RSAT can control warehouse flows
![Page 8: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/8.jpg)
WHS App Architecture XML-based custom service
![Page 9: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/9.jpg)
WHS App Architecture XML-based custom service
• XML-based custom service• XML in
• XML out
![Page 10: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/10.jpg)
XML InputControls with data
<?xml version="1.0" encoding="UTF-8"?><ParentNode>
<Controls PagePattern="Default" PageTitle="Sales Picking"><Control controlType="label" name="Scan" label="Scan a work ID / license plate ID" newLine="1" data="" type="Undefined" length="-1" error="0" defaultButton="0" enabled="1"
selected="" color="#000000" Status="1" NumDecimals="-1" DisplayArea="SubHeaderArea" PreferredInputMode="" PreferredInputType="" DisplayPriority="0" DisplaySubPriority="0"DataSequence="3" AttachedTo="" InstructionControl="" Footer1="" Footer2="" InputType="16806" />
<Control controlType="text" name="WHSWorkLicensePlateId" label="ID" newLine="1" data="USMF-000243" type="String" length="25" error="0" defaultButton="0" enabled="1"selected="" color="#000000" Status="1" NumDecimals="-1" DisplayArea="PrimaryInputArea" PreferredInputMode="Scanning" PreferredInputType="Alpha" DisplayPriority="50"DisplaySubPriority="20" DataSequence="4" AttachedTo="" InstructionControl="" Footer1="" Footer2="" InputType="2694" />
<Control controlType="button" name="OK" label="OK" newLine="1" data="1" type="Undefined" length="-1" error="0" defaultButton="1" enabled="1" selected=""color="#000000" Status="1" NumDecimals="-1" DisplayArea="PrimaryActionArea" PreferredInputMode="" PreferredInputType="" DisplayPriority="0" DisplaySubPriority="0"DataSequence="5" AttachedTo="" InstructionControl="" Footer1="" Footer2="" InputType="16806" />
<Control controlType="button" name="Cancel" label="Cancel" newLine="1" data="" type="Undefined" length="-1" error="0" defaultButton="0" enabled="1" selected=""color="#000000" Status="1" NumDecimals="-1" DisplayArea="" PreferredInputMode="" PreferredInputType="" DisplayPriority="0" DisplaySubPriority="0" DataSequence="6"AttachedTo="" InstructionControl="" Footer1="" Footer2="" InputType="16806" />
</Controls><Auth userId="24" sessionId="{0B68B628-3B6C-453C-A889-C8D446CEE73F}" /><UserCulture>en-us</UserCulture><UserDateCulture>en-us</UserDateCulture><Device DeviceId="052d8897-fa4b-4fa2-a986-da449119db1e" /><ServerActivity ServerActivityId="{41F320CE-C4E4-0007-07A1-F941E4C4D401}" />
</ParentNode>
![Page 11: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/11.jpg)
XML OutputResults of server processing
<?xml version="1.0" encoding="UTF-8"?><ParentNode><Controls PagePattern="Default" PageTitle="Sales Picking" ImageInfo="usmf|Product|ItemId:A0001">
<Control controlType="label" name="Pick" label="Sales orders : Pick" newLine="1" data="" type="Undefined" length="-1" error="0"defaultButton="0" enabled="1" selected="" color="#000000" Status="1" NumDecimals="-1" DisplayArea="SubHeaderArea" PreferredInputMode=""PreferredInputType="" DisplayPriority="0" DisplaySubPriority="0" DataSequence="3" AttachedTo="" InstructionControl="" Footer1="" Footer2=""InputType="16806" />
<Control controlType="text" name="WMSLocationId" label="Loc" newLine="1" data="FL-001" type="String" length="10" error="0" defaultButton="0"enabled="0" selected="" color="#000000" Status="1" NumDecimals="-1" DisplayArea="InfoAndSecondaryInputArea" PreferredInputMode="Scanning"PreferredInputType="Alpha" DisplayPriority="50" DisplaySubPriority="10" DataSequence="4" AttachedTo="" InstructionControl="" Footer1="" Footer2=""InputType="5472" />
<Control controlType="text" name="LicensePlateId" label="LP" newLine="1" data="" type="String" length="25" error="0" defaultButton="0"enabled="1" selected="" color="#000000" Status="1" NumDecimals="-1" DisplayArea="PrimaryInputArea" PreferredInputMode="Scanning"PreferredInputType="Alpha" DisplayPriority="50" DisplaySubPriority="20" DataSequence="5" AttachedTo="" InstructionControl="" Footer1="" Footer2=""InputType="2694" />
<Control controlType="text" name="ItemId" label="Item" newLine="1" data="A0001" type="String" length="80" error="0" defaultButton="0"enabled="0" selected="" color="#000000" Status="1" NumDecimals="-1" DisplayArea="InfoAndSecondaryInputArea" PreferredInputMode=""PreferredInputType="" DisplayPriority="0" DisplaySubPriority="0" DataSequence="6" AttachedTo="" InstructionControl="" Footer1="" Footer2=""InputType="1291" />
<Control controlType="label" name="RFQtyLabel" label="Qty: 1 pcs ; 1 Pcs" newLine="1" data="" type="Undefined" length="-1" error="0"defaultButton="0" enabled="1" selected="" color="#000000" Status="1" NumDecimals="-1" DisplayArea="InfoAndSecondaryInputArea"PreferredInputMode="Scanning" PreferredInputType="Alpha" DisplayPriority="10" DisplaySubPriority="40" DataSequence="7" AttachedTo=""InstructionControl="" Footer1="" Footer2="" InputType="18263" />
<Control controlType="label" name="RFDescription1" label=" HDMI 6' Cables" newLine="1" data="" type="Undefined" length="-1" error="0"defaultButton="0" enabled="0" selected="" color="#000000" Status="1" NumDecimals="-1" DisplayArea="InfoAndSecondaryInputArea"PreferredInputMode="Scanning" PreferredInputType="Alpha" DisplayPriority="30" DisplaySubPriority="10" DataSequence="8" AttachedTo=""InstructionControl="" Footer1="" Footer2="" InputType="17017" />
![Page 12: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/12.jpg)
WHS App Task Validator2 components
• XML Recorder
• XML Playback• RSAT consumable
XML Recorder
XML Playback
![Page 13: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/13.jpg)
Dynamics 365
Finance & Operations
Lifecycle Services
• Authoring
• Playback
Azure Dev Ops
BPM
DevOps
Project
Test Client
• Admin
• ExcelTask RecorderRSAT
![Page 14: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/14.jpg)
Dynamics 365
Finance & Operations
Lifecycle Services
• Authoring
• Playback
Azure Dev Ops
BPM
DevOps
Project
Test Client
• Admin
• ExcelTask RecorderRSAT
Dynamics 365
Warehousing App
App Task Validation
![Page 15: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/15.jpg)
![Page 16: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/16.jpg)
Introduction to the UI
![Page 17: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/17.jpg)
Introduction to the UI
![Page 18: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/18.jpg)
Tasks to test
• Top level business processes to validate
• Description and Worker User ID required
• Start recording: Clears previously recorded steps (if any) and resets user session.
• Starts XML Recorder component
• Run task: Launches the playback screen
• View task history: Previous run data
![Page 19: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/19.jpg)
Recorded steps
• All activities (for selected user) in warehouse mobile app are saved.
• Input XML (Mobile App -> AOS)
• Output XML (AOS -> Mobile App)
• XML can be viewed (and modified) via “View XML”
![Page 20: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/20.jpg)
Recorded steps – Validation Strategy
• No Validation: Step will be skipped
• Full XML Validation: Exact Output XML must match
• Data Value (recommended): Specific data validated based on user-defined rules
![Page 21: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/21.jpg)
Task input data
• Replacement variables
• Control names from WHS app XML• Use variable for control data
• RSAT can replace values
![Page 22: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/22.jpg)
Task input data
• Replacement variables
• Special case – override default mapping
• @VariableName
• Will use variable instead of normal task input data variable
• Must edit the XML
• Variable type• User-Set• Server-Set <Control controlType="text" name="LicensePlateId"
label="LP" newLine="1" data="@TargetLicensePlateIdVar"type="String" length="25" error="0" defaultButton="0" enabled="0" selected="" color="#000000" Status="1" NumDecimals="-1" DisplayArea="InfoAndSecondaryInputArea" PreferredInputMode="Scanning" PreferredInputType="Alpha" DisplayPriority="50" DisplaySubPriority="20" DataSequence="5" AttachedTo="" InstructionControl="" Footer1="" Footer2="" InputType="2694" />
![Page 23: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/23.jpg)
Task input data
• Generate Variables• Try to create variables for all steps
• Note: modifies XML
![Page 24: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/24.jpg)
Validation Rules
• Data Value validation
• Create a set of validation rules
• Based on control data from mobile app
![Page 25: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/25.jpg)
Validation Rules
• Data Value validation
• Create a set of validation rules
• Based on control data from mobile app
• All controls from Output XML are listed• Can validate existence/value
![Page 26: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/26.jpg)
Validation Rules
• Data Value validation
• Create a set of validation rules
• Based on control data from mobile app
• All controls from Output XML are listed• Can validate existence/value
• Current validation rules• Exists, Not exists
• Equality
• Greater/Less than
![Page 27: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/27.jpg)
Validation Rules
• Data Value validation
• Create a set of validation rules
• Based on control data from mobile app
• All controls from Output XML are listed• Can validate existence/value
• Current validation rules• Exists, Not exists• Equality• Greater/Less than
• Data value• String or @VariableName
![Page 28: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/28.jpg)
Recording a task
• XML Recorder
• Clears user session
• Warning: Clears recorded steps and validation rules
![Page 29: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/29.jpg)
Recording a task
• Each server transaction is recorded• Input XML (Mobile App -> AOS)
• Output XML (AOS -> Mobile App)
• Validation is based on output from server
• Description defaulted (can be changed)
• Validation Strategy defaulted to None
![Page 30: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/30.jpg)
Playing a task
• Launches playback page
• Builds XML w/replacement variables • Can review in playback page
![Page 31: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/31.jpg)
Playing a task
• Run test to start playback
• Monitor success/failure
• Validation messages
![Page 32: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/32.jpg)
![Page 33: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/33.jpg)
RSAT Integration
• Create new Task Recorder recording
• Navigate to Warehouse app task validation page
• Filter task to specific task
• Filter variables to specific ones to set
• Run task
![Page 34: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/34.jpg)
RSAT Integration
• LCS -> BPM -> Azure Dev Ops -> RSAT
• Can execute tests from RSAT
• Utilize Excel parameter file
![Page 35: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/35.jpg)
RSAT Integration
• LCS -> BPM -> Azure Dev Ops -> RSAT
• Can execute tests from RSAT
• Utilize Excel parameter file
• Can contain random values (TargetLP)
• Can reference global RSAT variables (Work ID)
• Can chain together tests into test suites
![Page 36: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/36.jpg)
Dynamics 365
Finance & Operations
Lifecycle Services
• Authoring
• Playback
Azure Dev Ops
BPM
DevOps
Project
Test Client
• Admin
• ExcelTask RecorderRSAT
Dynamics 365
Warehousing App
App Task Validation
![Page 37: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/37.jpg)
![Page 38: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/38.jpg)
Data Management
• 4 data entities
• Can move tests between environments
• WHSWarehouseAppTaskValidator*
![Page 39: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/39.jpg)
Versions
• 10.0.5• KB 4517769
• 10.0.6+
• Note: Non-production only.
![Page 40: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/40.jpg)
Common Issues
• Generate Variables• Use with caution
• “Unexpected difference between request and session data” error• XML out of sync – usually means not enough validation and expected state
has “drifted”
• WHSWorkUserSessionRequestValidator:: assertAgainstSessionState
• Multiple recordings active• Will appear to not record anything
![Page 41: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/41.jpg)
![Page 42: Warehouse App Task Validation Framework](https://reader030.fdocuments.in/reader030/viewer/2022012519/61943d4188ef356a89084b49/html5/thumbnails/42.jpg)