What the documents look like
Near-expiry markdown handling works on the shelf-life age of shelf stock, not on order-by-order weighing and sorting. The relevant records come from POS stock-age data, store inspections, ERP inventory and quality-check records, refreshed daily or by shift. Store service and internal training at this step touch four document types: the near-expiry list, the markdown approval, the damage/loss report, and the promotional price tag. A form input node collects the values staff enter and passes them to later nodes after submission; the node itself does not provide business database functions. A user selection node executes a branch according to the user's choice; it does not act as a staff directory or a business-data selector. When either node triggers, the conversation enters an interactive state, records the workflow state, waits for the interaction to finish, and then continues downstream.
Constraints at the interactive forms step
Near-expiry markdowns involve fields such as batch, markdown magnitude, approver and isolation status. A form only collects the values that are filled in; field validation, approval, write-back and batch operations need to be implemented in an external system or in later nodes. A branch result from user selection represents an option, not a completed approval.
Hypothetical drill sample: a paper near-expiry list reads "Store A, shift of 10 March 2025, item is leafy-vegetable batch B-0310, stock age has entered the near-expiry interval, markdown proposed, inspection clerk has recorded." One draft sentence awaiting judgment reads "The markdown approval for this batch has passed and markdown sales may proceed." The list original records only the inspection and the markdown intention; it does not state an approval signature, so the draft sentence's "approval passed" status is unsupported. A second handover request reads "Please synchronize the markdown approval result for batch B-0310 to the promotional price-tag system." The approval-result field is absent from the original, so this request is a matter to be verified.
Configuration and implementation checks
The table below is tied to the sample above and lists documented settings or implementation checks relevant to this feature and the primary task. The values are starting points for this hypothetical trial, not official defaults.
| Configuration item | Hypothetical starting point or check content | Reason and comparison method |
|---|---|---|
| Form input node | Collect batch number, shift, proposed markdown magnitude, inspection record | Compare against the fields the near-expiry list requires; a missing field makes the entry incomplete |
| Required-field check | Batch number, shift and proposed markdown magnitude set as required | Compare item by item against the list original; test behavior when a field is missing and after it is filled |
| User selection node | Branches are "submit for approval" and "hold processing" | Compare against the handover request; a choice result only represents an option |
| Interactive state | On trigger, record state and wait for submission | Observe whether the conversation continues downstream before and after submission |
| Downstream division of work | Approval, write-back and price-tag synchronization implemented by an external system | Compare against the draft sentence; a form value does not constitute an approval result |
| Empty-result handling | Paper input [] checked against downstream design | Observe whether downstream treats it as an empty set; do not infer a rule-based return |
Three common errors
- Treating a submitted form value as an approval conclusion. In the sample, the draft sentence says the approval has passed, while the list original records only the inspection and the markdown intention; submitting a form does not create an approval fact.
- Treating the "submit for approval" branch of user selection as an executed approval. The choice result represents an option; the approval signature must be completed by an external system.
- Treating retrieval or a form as authorized execution. The handover request asks to synchronize the approval result, but the original does not state that result; form collection does not constitute authorization.
Corresponding checks:
- Input the list original and the draft sentence, compare whether the "approval passed" field exists, and judge the claim unsupported when the original does not state it.
- Input the user selection branch, compare the branch name against the field required for approval completion, and find the completion condition unmet when the branch is an option.
- Input the handover request, compare the approval result in the request against the original record, and record the gap without executing synchronization when the field is missing.
How to verify the setup
The three checks below use the hypothetical sample as input. Each states what is supplied, what is compared, and what observable result satisfies the condition. Expected results are unsupported or pending verification; no actual test is claimed.
- Check 1: input the list original and the draft sentence. Compare the approval-status field named in the draft sentence against the fields the list original actually records. The observable condition is satisfied when the original contains no approval signature and the draft sentence is therefore marked unsupported.
- Check 2: input the user selection node branch "submit for approval". Compare the branch result against the fields required for approval completion. The observable condition is satisfied when the branch is only an option and the approval-completion requirement is unmet.
- Check 3: input the handover request for batch B-0310. Compare the approval result the request asks to synchronize against the original record. The observable condition is satisfied when the approval-result field is absent and the request is recorded as pending verification without a synchronization action.
Retrieval and forms do not carry permission or entity isolation. Empty-result handling uses the paper input [] to check downstream design and does not infer a fictional rule returning an empty set.