Guidelines for Processing Return Orders

Use these guidelines to help you process return orders.

Set Up the Item So Its Returnable

Assume you must return the AS54888 item.

  1. Make sure you have the privileges that you need to administer Product Information Management.

  2. Go to the Product Information Management work area, then click Tasks > Manage Items.

  3. On the Manage Items page, search for the AS54888 item, then open it for editing.

  4. On the Edit Item page, click Specifications > Sales and Order Management.

  5. Set the value.

    Attribute

    Description

    Returnable Yes
  6. Click Save and Close.

Note that you don't need to do this for a subscription item.

Integrate With Your Source System

Use a web service or import template to integrate your source system so it supports return orders.

Payload that integrates your source system to support return

Include attributes in your web service payload.

Attribute

Description

UnreferencedReturnFlag

Specify whether the payload references the original return.

  • Y. The payload doesn't reference the original return.

  • N. The payload does reference the original return.

Covered attributes, such as CoveredProductIdentifier

Specify covered item details.

CancellationEffectiveDate

Date that reverse billing goes into effect.

Use Web Services

Use web services to integrate Order Management with another system in your deployment.

  • OrderInformationService

  • OrderFulfillmentResponseService

For details, see Use Integration Cloud Service with Order Management.

Use the Order Import Template

Use the DOO_ORDER_DOC_REFERENCES_INT worksheet in the order import template to identify the original order and the item you're returning. For details, see Overview of Importing Orders Into Order Management.

Specify the Return-to Location

If you set the Line Type attribute on a return line to Return for Credit and Return the Item, and if the item is shippable, then you must provide the return-to location in the Return Location attribute on the order line. If you create your own return type and use it on the return line, and if you must physically return the item, then we recommend that you create an order management extension or processing constraint that makes sure you provide a value in the Return Location attribute. Order Management uses the Warehouse as the return-to location.

Assign Your Orchestration Process

You must use Oracle Business Rules, an order management extension, or a web service to assign a return order to an orchestration process. You can't use Visual Information Builder to do this.

You must use the ItemCategoryCode attribute to assign the orchestration process. You can't use the CategoryCode attribute or any other attribute in your assignment rule.

Don't Assign Outbound Lines to an Orchestration Process That Processes Returns

If the Line Category attribute on the fulfillment line contains Order, but the orchestration process processes returns, then the predefined DOO_VALIDATE_CREATE_RETURN processing constraint prevents Order Management from sending the line to Oracle Receiving, and you might encounter an error.

The request failed because an assignment rule assigned an order line where the Line Category attribute on the line contains Order, but the orchestration process processes returns.

You can read the constraint as.

If the Return Order Contains Standard Order Line rule set is true, and if the Request Validation for Create Receipt Advice rule set is true, then constrain the Create Return Service constraint entity according to the Default Record Set for the Fulfillment Line.

If you have an assignment rule that assigns an order line where the Item Category Code attribute on the line contains Order but the orchestration process processes returns, then we recommend that you modify it so it assigns the orchestration process only when the Item Category Code attribute on the fulfillment line equals Return.

If the ItemCategoryCode attribute on the fulfillment line is Return.

Specify the originalOrderReference Entity

You must include the originalOrderReference entity only on a line that's a return line.

Return Line? Then You Must
Yes Include the originalOrderReference entity.
No Not include the originalOrderReference entity.

For example, including this code on a line that isn't a return line will fail.

"originalOrderReference": [
        {
          "OriginalSourceOrderNumber": 1115463768988074,
          "OriginalSourceLineNumber": 1
        }
      ]

For another example, including this code on a line that isn't a return line will also fail:

"originalOrderReference": [
        {
          "OriginalSourceOrderNumber": null,
          "OriginalSourceLineNumber": null
        }
      ]

Avoid Runtime Problems

You can't use the CategoryCode attribute or any other attribute in your assignment rule to assign the orchestration process. You must use the Item Category Code attribute.

Assume you use the Generic Fulfillment Process orchestration process to process your sales orders, and you create your own orchestration process named Return Orders to process return orders. You then create an assignment rule in Visual Information Builder:

If CategoryCode equals ORDER, then use the Generic Fulfillment Process orchestration process.
ELSE
If CategoryCode equals RETURN, then use the Return Orders orchestration process.

At run time, Order Management might still process the return but it won't assign the correct orchestration process, and you won't see the return behavior that you expect. For example, it might use Generic Fulfillment Process to process all returns, and the status for the return might never change.

Prevent Billing from Rejecting Accounting and Invoicing Rule

If you use an accounting and invoicing rule when you create a sales order, and if you must create a return for an order that references return lines, then do these steps.

  1. Disable the predefined DOO_RMA_BILLING_ATTR_CHANGED constraint.

    It verifies the accounting and invoicing rules between the referenced return line and the original order line. You don't need it.

  2. Write an order management extension that nullifies the accounting and invoicing rule for referenced return lines.

    • Use the On Start of Submission Request event.

    • Make sure your extension runs only on return lines that Order Management hasn't yet sent to billing, and on lines that aren't closed or canceled.

  3. If you already submitted the return and you don't want to revise it, then remove the accounting and invoicing rule in your billing system.

    • Remove the rule only after Order Management sends the line to your billing system.

    • If you use Oracle Receivables, then use Manage AutoInvoice Lines to remove the values.

Example Payload That References the Original Return

Here's part of an example payload that references the original return. Use the Create Order Operation of web service Order Import Service. For brevity, this example includes only the attributes that are relevant for a return. Its an incomplete payload. Examine the complete payload in the return_order_with_reference.xml file. For details, see Example Web Service Payloads That Integrate Order Management.

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ns1:createOrders xmlns:ns1="http://xmlns.oracle.com/apps/scm/fom/importOrders/orderImportService/types/">
     <ns1:request xmlns:ns2="http://xmlns.oracle.com/apps/scm/fom/importOrders/orderImportService/">
      <ns2:BatchName/>
      <ns2:Order>
       <ns2:SourceTransactionIdentifier>AP_RETURN_ORDER_01</ns2:SourceTransactionIdentifier>
       <ns2:SourceTransactionSystem>GPR</ns2:SourceTransactionSystem>
       <ns2:SourceTransactionNumber>AP_RETURN_ORDER_01</ns2:SourceTransactionNumber>
       <ns2:TransactionOn>2019-1-20T06:08:52</ns2:TransactionOn>
       <ns2:SourceTransactionLineIdentifier>101</ns2:SourceTransactionLineIdentifier>
        <ns2:SourceTransactionScheduleIdentifier>101</ns2:SourceTransactionScheduleIdentifier>
        <ns2:SourceTransactionLineNumber>1</ns2:SourceTransactionLineNumber>
        <ns2:SourceTransactionScheduleNumber>1</ns2:SourceTransactionScheduleNumber>
       <ns2:ProductNumber>AS54888</ns2:ProductNumber>
       <!-- TransactionCategoryCode can use one of two values. Use ORDER for regular order line. Use RETURN for return order line. If RETURN, you must provide the reference to original order and line under LineDocumentReference-->
       <ns2:TransactionCategoryCode>RETURN</ns2:TransactionCategoryCode>
       <!-- ReturnReasonCode and Return Reason are optional for a return order line. -->
       <ns2:ReturnReasonCode>ORA_QTY_CHANGE</ns2:ReturnReasonCode>
       <ns2:OrigSysDocumentReference>ORIGSYS</ns2:OrigSysDocumentReference>
       <ns2:OrigSysDocumentLineReference>ORIGSYSLINE</ns2:OrigSysDocumentLineReference>

       <!Send the Line Document Reference only for a return line. This entity references the original order line for the item you're returning.-->
       <ns2:DocumentReference>
       <ns2:DocumentReferenceType>ORIGINAL_SALES_ORDER</ns2:DocumentReferenceType>
       <!-- SourceOrderId for original order -->
       <ns2:DocumentIdentifier>ORIG_SALES_ORDER_01</ns2:DocumentIdentifier>
       <!-- Source Order System for original order identifier-->
       <ns2:DocumentAdditionalIdentifier>GPR</ns2:DocumentAdditionalIdentifier>
       <!-- SourceOrderNumber of original order -->
       <ns2:DocumentNumber>ORIG_SALES_ORDER_01</ns2:DocumentNumber>
       <ns2:DocumentAdditionalNumber/>
       <!-- SourceLineId for originl order -->
       <ns2:DocumentLineIdentifier>101</ns2:DocumentLineIdentifier>
       <ns2:DocumentAdditionalLineIdentifier/>
       <!-- SourceLineNumber for original order -->
       <ns2:DocumentLineNumber>1</ns2:DocumentLineNumber>
       <ns2:DocumentAdditionalLineNumber/>
       <ns2:DocumentAdditionalSubLineIdentifier/>
       <ns2:DocumentSubLineNumber/>
       <ns2:DocumentAdditionalSubLineNumber/>
      </ns2:DocumentReference>
     </ns2:Line>
    </ns2:Order>
   </ns1:request>
  </ns1:createOrders>
 </soap:Body>
</soap:Envelope>