推荐样例.docx
《推荐样例.docx》由会员分享,可在线阅读,更多相关《推荐样例.docx(13页珍藏版)》请在冰豆网上搜索。
![推荐样例.docx](https://file1.bdocx.com/fileroot1/2023-3/30/4d028ca5-3ec7-471b-9cfc-19edc6e85bb7/4d028ca5-3ec7-471b-9cfc-19edc6e85bb71.gif)
推荐样例
Performance:
MM
PP
SD
Performance:
CustomerdevelopmentsinMM/WM
EMBEDForms.HTML:
Hidden.1
EMBEDForms.HTML:
Hidden.1
SAPNoteNumber
Symptom
Customer-specificprogramsandprogramenhancements("userexits")haveapoorperformance.ThepoorperformancewasobservedwhenthefollowingSAPMM/WMtableswereaccessed:
MSEG,LTAP,EBAN,RSEG.
Additionalkeywords
Causeandpreconditions
However,notethefollowingwarnings:
∙Beforeyouproductivelyusethealternativesproposedhere,youmustcarefullycheckyourprogramwithrespecttofunctionalcorrectness.
Payattentiontothefollowingnote:
Inthefollowingexamplesyoucanoftenfindaccessestoseveraltables
Example:
SELECT*FROMLEINWHERE=...
SELECT*FROMLTAPWHERELGNUM=LEIN-LGNUMandTANUM=LEIN-BTANR
...
Itmightbemorefavorable,withregardtotheperformance,todefineaselectionviewonthecorrespondingtables(here:
LEINandLTAP)inordertocombineaccessestothesetwotablesinoneaccess.
Solution
1.Accessestotransportrequests
a)viathestorageunitnumber
Incorrect:
SELECTFROMLTAPWHEREVLENR=....
oder
SELECTFROMLTAPWHERENLENR=...
Correct:
SELECTFROMLEINWHERELENUM=...
SELECTFROMLTAPWHERELGNUM=LEIN-LGNUMand
ANDTANUM=LEIN-BTANR
ANDTAPOS=LEIN-BTAPS.
b)viatheSDdeliverynote
Incorrect:
SELECTFROMLTAPWHERENLPLA=LIPS-VBELN
ANDPOSNR=LIPS-POSNR.
Correct:
SELECTFROMVBFAWHEREVBELV=LIPS-VBELN
ANDPOSNV=LIPS-POSNR
ANDVBTYP_N='Q'.
SELECTFROMLTAPWHERELGNUM=LIPS-LGNUM
ANDTANUM=VBFA-VBELN
ANDTAPOS=VBFA-POSNN.
Remark:
ThisaccessmodeonlyexistsifthetransportorderswerecreatedonaccountofdeliveriesinSalesandDistribution.InthiscasetherespectivetransportorderscanbedeterminedviathedocumentflowtableVBFA.
ThefieldLTAP-NLPLAisfilledwiththedeliverynotenumberviathedynamicstoragebinassignment.ThisautomaticassignmentcanbedeactivatedinWMCustomizing(seemovementtypesinWMS).ThissideeffectmustbeconsideredwhenfieldNLPLAisusedfordataselection.
2.Accesstomaterialdocuments
a)viathepurchaseordernumber
Incorrect:
SELECTFROMMSEGWHEREEBELN=...
andEBELP=...
Correct:
SELECTFROMEKBEWHEREEBELN=..
ANDEBELP=...
ANDVGABEIN(1,6,7,8,9).
SELECTFROMMSEGWHEREMBLNR=EKBE-BELNR
ANDMJAHR=EKBE-GJAHR
ANDZEILE=EKBE-BUZEI.
Remark:
Thefiscalyearmustbespecifiedsothatthesystemhaseffectiveaccesspossibilitiesviatheprimaryindex.Ifthefiscalyearismissing,thedatabasecannolongereffectivelyusetheitemnumberforthesearch(thisisaproblem,especiallyformaterialdocumentswithmanyitems).IftheoperationtypeVGABEisspecified,thevaluescanbeadditionallyrestrictedtothecorrespondinggoodsmovementsthatarerelevant.
b)viathetransportordernumber
Incorrect:
SELECTFROMMSEGWHERETANUM=...
Correct:
SELECTFROMLTAPWHERETANUM=...
SELECTFROMMSEGWHEREMBELN=LTAP-WENUM
ANDMJAHR=
ANDZEILE=LTAP-WEPOS.
c)viatransferrequirement
Incorrect:
SELECTMSEGWHERETBNUM=...
Correct:
SELECTLTBKWHERETBNUM=....
SELECTMSEGWHEREMBLNR=LTBK-MBLNR
ANDMJAHR=LTBK-MJAHR.
Remark:
Allitemsofthematerialdocumentarereturned.Itispossibletohavearestrictiontooneindividualitemofthematerialdocumentbyspecifyingthematerialnumber.
d)Viathevendornumber
Incorrect:
SELECTFROMMSEGWHERELIFNR=...
Correct:
SELECTEKKOWHERELIFNR=....
SELECTEKBEWHEREEBELN=EKKO-EBELN
ANDVGABE='1'.
SELECTMSEGWHEREMBLNR=EKBE-BELNR
ANDMJAHR=EKBE-GJAHR
ANDZEILE=EKBE-BUZEI.
Remark:
AccessestoEKKOandEKBEreturnseveraldatasetsundercertaincircumstances.Thismustbetakenintoaccountintheprogramlogic.WiththeoperationtypeVGABE=1,onlygoodsmovementsforpurchaseordersareselected.
AsanalternativeyoucanusematchcodeobjectM_MEKKLinplaceoftableEKKO(forexampleSELECTFROMM_EKKLWHERELIFNR=...).Accesscanbeimprovedbyspecifyingadditionalrestrictions.ThefieldspurchasingorganizationEKORG,purchasinggroupEKGRP,documentdateBEDAT,purchasingdocumentcategoryBSTYP,ordertypeBSARTcanmaketheaccessmoreselective.
3.Accessestopurchaserequisitions
a)viathereservationnumber
Incorrect:
SELECTFROMEBANWHEREEBELN=....
ANDEBELP=....
Correct:
SELECTFROMEKETWHEREEBELN=....
EBELP=....
SELETFROMEBANWHEREBANFN=EKET-BANFN
ANDBANFPO=EKET-BANFPO.
4.Accesstoincominginvoices
a)viathepurchaseordernumber
Incorrect:
SELECTFROMRSEGWHEREEBELN=...
andEBELP=...
Correct:
SELECTFROMEKBEWHEREEBELN=...
ANDEBELP=...
ANDVGABEIN(2,3,P).
SELECTFROMRSEGWHEREBELNR=EKBE-BELNR
ANDGJAHR=EKBE-GJAHR
ANDBUZEI=EKBE-BUZEI.
Remark:
ByspecifyingtransactiontypeVGABE,thevaluesarerestrictedtotherelevantgoodsmovements.WithGJAHRandBUZEI,theprimaryindexiscompletelyutilizedbyRSEG.
Sourcecodecorrections
Performance:
CustomerdevelopmentsinSD
表單的頂端
EMBEDForms.HTML:
Hidden.1
EMBEDForms.HTML:
Hidden.1
SAPNoteNumber
Symptom
Customer-specificprogramsandprogramenhancements("UserExits")haveabadperformance.ThebadperformanceisnoticedduringaccessestothefollowingSAPSDtables:
VBAK,VBAP,VMVA,LIKP,LIPS,VBRK,VBRP,VBFA
Additionalkeywords
Causeandprerequisites
TheR/3SystemcontainsnosecondaryindexestothemostimportantSDtransactiondatatablesinthedelivery.Instead,theR/3Systemhasproprietaryindextables(salesdocumentindexes,forexamplethetablesVAKPAandVAPMA,matchcodetablesforexampleM_VMVAB,M_VMVACormatchcodeviewsforexampleM_VMVAA,M_VMVAE),whichallowanefficientaccess.
InordertousetheseefficientlyacertainbasicknowledgeoftheSAPdatamodelisrequired.Forthisthisnoteliststhemostimportanterrorswhicharemadeanditoffersalternatives.
HowevernotethefollowingWARNINGS:
▪Beforeyouusethelistedalternativesproductively,youmustcheckyourprogramcloselyforfunctionalaccuracy.
▪Thesalesdocumentindexesmustbemaintainedcorrectlyinyoursystem.Thisisusuallyautomaticallythecase,however,therecanbeinconsistencies.CarefullyreadandfollowNotes128947and178328.
ConsiderthefollowingNOTES:
Inthefollowingexamples,thereareoftenaccessestoseveraltables,forexample:
SELECTFROMvakpaWHEREkunde=...
SELECTFROMvbakWHEREvbeln=vakpa-vbeln.
Itcanincreasetheperformance,todefineaselectionviewonthecorrespondingtables(here:
VAKPAandVBAK)inordertocombinetheaccessestothetwotablesinoneaccess.
Solution
1.Accessestosalesorders(tablesVBAK,VBAP)
a)Searchordersforcustomernumber(fieldVBAK-KUNNR):
Incorrect:
SELECTFROMvbakWHEREkunnr=...
Correct:
SELECTFROMvakpaWHEREkunde=...
SELECTFROMvbakWHEREvbeln=vakpa-vbeln.
a)Searchorderitemsformaterialnumber(fieldVBAP-MATNR):
Incorrect:
SELECTFROMvbapWHEREmatnr=...
Correct:
SELECTFROMvapmaWHEREmatnr=...
SELECTFROMvbapWHEREvbeln=vapma-vbeln
ANDposnr=vapma-posnr
a)OthersearchhelpsforsalesordersofferthematchcodetablesandviewsM_VMVAx,x.=A,B,C,...M;forexamplesearchforpurchaseordernumberofthecustomer,descriptionandsoon
1.Accessestodeliveries(tablesLIKP,LIPS)
a)Searchfordeliverieswithcustomernumber(fieldLIKP-KUNNR):
Incorrect:
SELECTFROMlikpWHEREkunnr=...
Correct:
SELECTFROMvlkpaWHEREkunde=...
SELECTFROMlikpWHEREvbeln=vlkpa-vbeln.
a)Searchfordeliveryitemswithmaterialnumber(fieldLIKP-MATNR):
Incorrect:
SELECTFROMlipsWHEREmatnr=...
Correct:
SELECTFROMvlpmaWHEREmatnr=...
SELECTFROMlipsWHEREvbeln=vlpma-vbeln
ANDposnr=vlpma-posnr
a)Searchfordeliverieswithsalesordernumber(precedingdocument,fieldLIPS-VGBEL):
Incorrect:
SELECTFROMlipsWHEREvgbel=...
Correct:
SELECTFROMvbfaWHEREVBELV=...andVBTYP_N='J'
SELECTFROMlipsWHEREvbeln=vbfa-vbeln
ANDposnr=vbfa-posnn
a)OthersearchhelpsfordeliveriesoffermatchcodetablesandviewsM_VMVLx,x.=A,B,C,...M;forexamplesearchforgoodsissuedate,pickingdate,transportationplanningdateandsoon.
1.Accessestoinvoices(tablesVBRK,VBRP)
a)Searchforinvoiceswithcustomernumber("payer")(fieldVBRK-KUNRG):
Incorrect:
SELECTFROMvbrkWHEREkunrg=...
Correct:
SELECTFROMvrkpaWHEREkunde=...
SELECTFROMvbrkWHEREvbeln=vrkpa-vbeln
a)Searchforinvoiceitemswithmaterialnumber(fieldVBRP-MATNR):
Incorrect:
SELECTFROMvbrpWHEREmatnr=...
Correct:
SELECTFROMvrpmaWHEREmatnr=...
SELECTFROMvbrpWHEREvbeln=vrpma-vbeln
ANDposnr=vrpma-posnr
a)Searchforinvoiceswithdeliverynumber(precedingdocument,fieldVBRP-VGBEL):
Incorrect:
SELECTFROMvbrpWHEREvgbel=...
Correct:
SELECTFROMvbfaWHEREvbtyp_n='M'
ANDvbelv=...
SELECTFROMvbrpWHEREvbeln=vbfa-vbeln
ANDposnr=vbfa-posnn
a)Searchforinvoiceswithordernumber(precedingdocument,fieldVBRP-AUBEL):
Incorrect:
SELECTFROMvbrpWHEREaubel=...
Correct:
SELECTFROMvbfaWHEREvbtyp_n='M'
ANDvbelv=...
SELECTFROMvbrpWHEREvbeln=vbfa-vbeln
ANDposnr=vbfa-posnn
1.OtheraccessesinSD:
a)Documentflow:
Incorrect:
SELECTvbelvFROMvbfaWHEREvbeln...
IntableVBFAonlythepreceedingdocumentisusedtosearchforthesubsequentdocument(