How to Close open purchase order through N4301900

Purpose of Document

The purpose of this document is to explain as-is functionality of CancelPurchaseOrder (N4301900, Cancel Purchase Order). Currently there is no batch application which enable you to close/cancel multiple orders. If applicable, you can perform same action through business service processPurchasaeOrder with actionType = 3 (D, or Cancel).
 

 

CancelPurchaseOrderPurpose: the purpose of this document is to help user to understand the NER N4301900 (Cancel Purchase Order) which is a wrapper function to call F4311EditLine (XT4311Z1, F4311 Edit Line) with parameters for cancellation of existing order. In reality, XT4311Z1 does not handle cache/workfile for purchase order detail line(s) rather action routine is written in F4311EditLineInternalFunctions (XT4311Z2, F4311 Edit Line Internal Functions). So this document shall explain routine which is specific to cDetailActionCode = 'D - Cancel'.

Note that the wrapper function N4301900 does not commit cache/workfile updated through this routine, so user must click OK button to commit the change made through Edit Line routine. To commit the change made, you have to call F4311EndDoc explicitly to commit the data validated/defaulted via CancelPurchaseOrder.

Business Function


CancelPurchaseOrder (N4301900, Cancel Purchase Order)

Parameter Name Data Item Data Type Req/Opt I/O/Both Others
mnOrderNumber DOCO MATH_NUMERIC OPT INPUT F4311.DOCO, Key for order F4301/F4311
szOrderType DCTO char OPT INPUT F4301.DCTO
szDocumentCompany KCOO char OPT INPUT F4301.KCOO
szOrderSuffix SFXO char OPT NONE Not In Use
mnOrderLineNumber LNID MATH_NUMERIC OPT NONE Not In Use
idPointerToF4311DataStructure GENLNG ID OPT NONE Not In Use
cReturnFlag EV01 char OPT OUT 1 - SUCCESS
0 - Error (Edit Line Routine ends in error)
cErrorCode ERR char OPT NONE Not In Use
cCallType EV02 char OPT NONE Not In Use
szErrorMessageID DTAI char OPT NONE Not In Use
cSuppressErrorMessage EV01 char OPT IN 1 - To suppress Error which may be returned by F4311EditLine
mnJobnumberA JOBS MATH_NUMERIC OPT BOTH Key for cache/workfile
szComputerID CTID char OPT BOTH Key for cache/workfile Client's machine name
mnProcessID PEID MATH_NUMERIC OPT BOTH Key for cache/workfile
mnTransactionID TCID MATH_NUMERIC OPT BOTH Key for cache/workfile so these are 
cCurrencyMode CRRM char OPT IN F4301.CRRM
szStatusCodeNext NXTR char OPT IN PO szLastStatusAllowingChange
cBeginDocCalled EV01 char OPT OUT VA evt_cBeginDocCalled. The reason for this validation is that BeginDoc can be called either in P4310 or through F4311EditLine. 

 

Note:
1. In selecting orders from F4311, exclude F4311.NXTR = '999'  (Refer <Bug 13575723> : ERROR ID 124T WHEN CANCELING ORDER)
2. Read F4311 to hand over as-is value in calling F4311EditLine routine


Simplified routine for cancelling purchase order:

    1. CancelPurchaseOrder (N4301900, Cancel Purchase Order)
        2. F4311EditLine (XT4311Z1, F4311 Edit Line) --> Refer to below business function
            3. RetrieveProcessAndTransactionID (B0001060, Retrieve Process and Transaction IDs)
            3. GetPurchaseOrderHeader (B4300130, F4301 Get Purchase Order Header Row)
            3. F4311FSBeginDoc (F4311FSBeginDoc (XT4311Z1, F4311 Begin Document))
            3. CacheProcessPOHeaderCache (B4302180, Purchase Order Header Cache Function)
            3. CalculatePurchasePrice (B4500250, Calculate Purchase Price)
                ...
    1. F4311EditDoc (XT4311Z1, F4311 Edit Doc)
    1. F4311EndDoc (XT4311Z1, F4311 End Document):Record down Machine Name and Job Number returned by Edit Line and call this routine explicitly to commit change made to the database.




F4311EditLine (XT4311Z2 - F4311 Edit Line)

 

Parameter Name Data Item Data Type Req/Opt I/O/Both Others
mnJobNumber JOBS MATH_NUMERIC OPT Both N4301900.mnJobNumberA
szComputerID CTID char OPT Both  N4301900.szComputerID
mnOrderLineNumber LNID MATH_NUMERIC OPT Both F4311.LNID
cDetailActionCode ACTN char OPT IN 'D - for Deletion/Cancellation'. This is represented as '3' in XT4311Z2.c
cProcessEdits EV01 char OPT IN '1 - for Full Edit'
cUpdateOrWriteWorkFile EV01 char OPT IN '2 - To update Cache - F4311Z'
cRecordWrittenToWorkFile EV01 char OPT IN '0 - Not to write the physial file'
cSuppressErrorMessages EV01 char OPT NONE  
cCurrencyProcessingFlag CRYR char OPT IN SL CurrencyProcessing
szPurchaseOrderPrOptVersion VL01 char OPT IN SL VersionName
szOrderCompany KCOO char OPT IN F4301.KCOO
mnOrderNumber DOCO MATH_NUMERIC OPT IN F4311.DOCO
szOrderType DCTO char OPT IN F4301.DCTO
szOrderSuffix SFXO char OPT NONE F4311.SFXO
szBranchPlant MCU char OPT NONE F4301.MCU
szOriginalOrderCompany OKCO char OPT NONE F4311.OKCO
szOriginalOrderNumber OORN char OPT NONE F4311.OORN
szOriginalOrderType OCTO char OPT NONE F4311.OCTO
mnOriginalLineNumber OGNO MATH_NUMERIC OPT NONE F4311.OGNO
szRelatedOrderCompany RKCO char OPT NONE F4311.RKCO
szRelatedOrderNumber RORN char OPT NONE F4311.RORN
szRelatedOrderType RCTO char OPT NONE F4311.RCTO
mnRelatedOrderLine RLLN MATH_NUMERIC OPT NONE F4311.RLLN
mnSupplierNumber AN8 MATH_NUMERIC OPT NONE F4311.AN8
mnShipToNumber SHAN MATH_NUMERIC OPT NONE F4311.SHAN
jdRequestedDate DRQJ JDEDATE OPT NONE F4311.DRQJ
jdTransactionDate TRDJ JDEDATE OPT NONE F4311.TRDJ
jdPromisedDate PDDJ JDEDATE OPT NONE F4311.PDDJ
jdCancelDate CNDJ JDEDATE OPT NONE F4311.CNDJ is this is NULL then set system date
jdGLDate DGL JDEDATE OPT NONE F4311.DGL
szUnformattedItemNumber UITM char OPT NONE F4311.UITM = LITM
mnQuantityOrdered UORG MATH_NUMERIC OPT NONE F4311.UORG
mnUnitPrice PRRC MATH_NUMERIC OPT NONE F4311.PRRC
cPriceOverrideFlag PROV char OPT NONE F4311.PROV
mnExtendedPrice AEXP MATH_NUMERIC OPT NONE F4311.AEXP
szLineType LNTY char OPT NONE F4311.LNTY
szDescription1 DSC1 char OPT NONE F4311.DCS1
szDescription2 DSC2 char OPT NONE F4311.DCS2
szAssetID ASID char OPT NONE F4311.ASID
szDetailLineBranchPlant MCU char OPT NONE F4311.MCU
szLocation LOCN char OPT NONE F4311.LOCN
szLotNumber LOTN char OPT NONE F4311.LOTN
szTransactionUoM UOM char OPT NONE F4311.UOM
szPurchasingUoM UOM3 char OPT NONE F4311.UOM1
szLastStatus LTTR char OPT NONE F4311.LTTR
szNextStatus NXTR char OPT NONE F4311.NXTR
szUnformattedAccountNumber ANI char OPT NONE F4311.ANI
szSubledger SBL char OPT NONE F4311.SBL
cSubledgerType SBLT char OPT NONE F4311.SBLT
mnDiscountFactor DSPR MATH_NUMERIC OPT NONE F4311.DSPR
szCatalogNumber CATN char OPT NONE F4311.CATN
szInventoryPriceRule PRGR char OPT NONE F4311.PRGR
szPriceLevel CLVL char OPT NONE F4311.CLVL
szPrintMessage INMG char OPT NONE F4311.INMG
cTaxable TX char OPT NONE F4311.TX
szTaxExplanationCode EXR1 char OPT NONE F4311.EXR1
szTaxRateArea TXA1 char OPT NONE F4311.TXA1
szGLClassCode GLPT char OPT NONE F4311.GLC
mnBuyerNumber ANBY MATH_NUMERIC OPT NONE F4311.ANBY
mnCarrierNumber ANCR MATH_NUMERIC OPT NONE F4311.ANCR
szPurchasingCategoryCode1 PDP1 char OPT NONE F4311.PDP1
szPurchasingCategoryCode2 PDP2 char OPT NONE F4311.PDP2
szPurchasingCategoryCode3 PDP3 char OPT NONE F4311.PDP3
szPurchasingCategoryCode4 PDP4 char OPT NONE F4311.PDP4
szLandedCostRule PRP5 char OPT NONE F4311.PDP5
mnWeight ITWT MATH_NUMERIC OPT NONE F4311.ITWT
szWeightUoM WTUM char OPT NONE F4311.WTUM
mnVolume ITVL MATH_NUMERIC OPT NONE F4311.ITVL
szVolumeUoM VLUM char OPT NONE F4311.VLUM
szReference1 VR01 char OPT NONE F4311.VR01
szReference2 VR02 char OPT NONE F4311.VR02
cSendMethod CRMD char OPT NONE F4311.CRMD
cFreezeCode UNCD char OPT NONE F4311.UNCD
cEvaluatedReceipts AVCH char OPT NONE F4311.AVCH
cInventoryInterface IVI char OPT NONE F4311.IVI
cCurrencyMode CRRM char OPT NONE SL CurrencyMode
szTransactionCurrencyCode CRCD char OPT NONE F4311.CRCD
mnCurrencyExchangeRate CRR MATH_NUMERIC OPT NONE F4311.CRR
szBaseCurrencyCode CRDC char OPT NONE N/A
cRelievePOBlanketOrder EV01 char OPT OUT evt_cGetBlanket_EV01
cAddNewLineToExistingOrder EV01 char OPT OUT VA evt_cAddNewLntoExistOrder_EV01
cSourceRequestingPOGeneration POGS char OPT NONE 0 - Hard Coded
szProgramID PID char OPT NONE EP4310 - Hard Coded
szUserID USER char OPT NONE GetAuditInfo.szUserID
cMultipleBlanketProcessing EV02 char OPT OUT N/A
mnUniqueKey UKID MATH_NUMERIC OPT IN F4311.UKID (outside operation)
cSourceOfDataFlag EV01 char OPT NONE N/A
mnSourceOfDataOrderNumber DOCO MATH_NUMERIC OPT NONE N/A
szSourceOfDataOrderType DCTO char OPT NONE N/A
szSourceOfDataCompany KCOO char OPT NONE N/A
mnSourceOfDataLineNumber LNID MATH_NUMERIC OPT NONE N/A
mnSourceOfDataUnitsOpen UOPN MATH_NUMERIC OPT NONE N/A
szPaymentTerms PTC char OPT NONE F4311.PTC
szFreightHandlingCode FRTH char OPT NONE N/A
szUserReservedCode URCD char OPT NONE N/A
jdUserReservedDate URDT JDEDATE OPT NONE N/A
mnUserReservedAmount URAT MATH_NUMERIC OPT NONE N/A
mnUserReservedNumber URAB MATH_NUMERIC OPT NONE N/A
szUserReservedReference URRF char OPT NONE N/A
szAgreementNumber DMCT char OPT NONE F4311.DMCT
mnAgreementSupplement DMCS MATH_NUMERIC OPT NONE F4311.DMCS
mnContractsFound AFND MATH_NUMERIC OPT NONE F4311.AFND
mnSequenceNumber1 SEQ MATH_NUMERIC OPT NONE F4311.SEQ
szProductSource PSR char OPT NONE F4311.PSR
szProductSourceType PSRY char OPT NONE F4311.PSRY
jdEffectiveDate PEFJ JDEDATE OPT NONE F4311.PEFJ
jdPhysicalCompletionDate ADDJ JDEDATE OPT NONE F4311.ADDJ
szPurchasingCostCenter OMCU char OPT NONE F4311.OMCU
szObjectAccount OBJ char OPT NONE F4311.OBJ
szSubsidiary SUB char OPT NONE F4311.SUB
szOriginalOrderSuffix SFX0 char OPT NONE F4311.OSFX
cMessageCde MSGT char OPT NONE N/A
szMaterialStatusCodeWo MTST char OPT NONE N/A
cStockingType STKT char OPT NONE F4311.STKT
cKitsMethodofPriceCalculation PMTH char OPT NONE F4311.PMTH
szItemNumberRelatedKit RLIT char OPT NONE F4311.RLIT
mnLineNum LINN MATH_NUMERIC OPT NONE N/A
szAdjustmentSchedule ASN char OPT NONE F4311.ASN
mnAdjustmentRevisionLevel AREV MATH_NUMERIC OPT NONE F4311.AREV
cFreeGoodIndicator EV12 char OPT NONE N/A
cAdvPriceCalledFlag EV13 char OPT NONE N/A
szOriginalPoSoNumber_2 OORN char OPT NONE N/A
szRelatedPoSoNumber_2 RORN char OPT NONE N/A
cManagerialAnalysisType1 ABT1 char OPT NONE ABT1
szManagerialAnalysisCode1 ABR1 char OPT NONE ARR1
cManagerialAnalysisType2 ABT2 char OPT NONE ABT2
szManagerialAnalysisCode2 ABR2 char OPT NONE ABR2
cManagerialAnalysisType3 ABT3 char OPT NONE ABT3
szManagerialAnalysisCode3 ABR3 char OPT NONE ABR3
cManagerialAnalysisType4 ABT4 char OPT NONE ABT4
szManagerialAnalysisCode4 ABR4 char OPT NONE ABR4
mnLineNumberXREF LNIX MATH_NUMERIC OPT NONE N/A
cTransferOrder PS01 char OPT NONE N/A
mnShipmentNumber SHPN MATH_NUMERIC OPT NONE F4311.SHAN
mnProcessID PEID MATH_NUMERIC OPT OUT RetrieveProcessAndTransactionID
mnTransactionID TCID MATH_NUMERIC OPT OUT RetrieveProcessAndTransactionID
szItemFlashMessage IFLA char OPT NONE F4311.IFLA
cAmountRecNotZero EV01 char OPT NONE N/A
mnIdentifierShortItem ITM MATH_NUMERIC OPT NONE F4311.ITM
mnRMADocNumber DOC1 MATH_NUMERIC OPT NONE N/A
szRMADocType DCT4 char OPT NONE N/A
mnSecondaryQty SQOR MATH_NUMERIC OPT NONE N/A
szSecondaryUOM UOM2 char OPT NONE F4311.UOM2
jdLotEffectivityDate DLEJ JDEDATE OPT NONE Not In Use
szPromotionID PMTN char OPT NONE Not In Use
mnMatrixControlLine MCLN MATH_NUMERIC OPT NONE Not In Use
mnProjectNumber PRJM MATH_NUMERIC OPT NONE F4311.PRJM
cActiveFlag ATVF char OPT NONE Not In Use
szPOEMBFInternalFlags POEF char OPT NONE Not In Use
szModeOfTransport MOT char OPT NONE Not In Use
mnTaskOrderNumber DOCO MATH_NUMERIC OPT NONE Not In Use
szTaskOrderType DCTO char OPT NONE Not In Use
szPlan PL char OPT NONE Not In Use
szElevation ELEV char OPT NONE Not In Use
cPreservePOEManualAdj EV01 char OPT NONE Not In Use
cPOETriggerReprice EV01 char OPT NONE Not In Use
szReferenceUCISNo VR03 char OPT NONE Not In Use
szUNSPSCCode UNSPSC char OPT NONE Not In Use
szCommodityCode CMDCDE char OPT NONE Not In Use
jdDatePromisedShipJu PPDJ JDEDATE OPT NONE Not In Use
cMultipleAccountsExist_MACT MACT char OPT NONE F4311.MACT
szTransactionOriginator_TORG TORG char OPT NONE Not In Use
szRelatedOrderSuffix RSFX char OPT NONE Not In Use
mnContract_ID CNTRTID MATH_NUMERIC OPT NONE Not In Use
mnContractDetailID CNTRTDID MATH_NUMERIC OPT NONE Not In Use
cRepricePOMode_EV06 EV06 char OPT NONE Not In Use
cManualOverride MOADJ char OPT NONE Not In Use
cRepricePreserveFreeGood_EV07 EV07 char OPT NONE Not In Use
mnVesselID WVID MATH_NUMERIC OPT NONE Not In Use
cVesselClass WVTY char OPT NONE Not In Use
szPurchaseLineCode01 PODC01 char OPT NONE Not In Use
szPurchaseLineCode02 PODC02 char OPT NONE Not In Use
szPurchaseLineCode03 PODC03 char OPT NONE Not In Use
szPurchaseLineCode04 PODC04 char OPT NONE Not In Use
szJobType JBCD char OPT NONE Not In Use
mnUnitsQuantityService SRQTY MATH_NUMERIC OPT NONE Not In Use
szUnitOfMeasureService SRUOM char OPT NONE Not In Use
cCreatedByConfiguratorFlag CFGFL char OPT NONE Not In Use
szProjectMfgProductionNumb PMPN char OPT NONE Not In Use
mnProductionNumberShort PNS MATH_NUMERIC OPT NONE Not In Use

 

Note: