Dynamics AX 2012-ൽ ഡാറ്റയും buf2Buf() ഉം തമ്മിലുള്ള വ്യത്യാസം
പ്രസിദ്ധീകരിച്ചത്: 2025, ഫെബ്രുവരി 15 10:55:39 PM UTC
ഡൈനാമിക്സ് AX 2012-ലെ buf2Buf() ഉം ഡാറ്റ() രീതികളും തമ്മിലുള്ള വ്യത്യാസങ്ങൾ ഈ ലേഖനം വിശദീകരിക്കുന്നു, ഓരോന്നും ഒരു X++ കോഡ് ഉദാഹരണം ഉപയോഗിക്കുന്നത് ഉചിതമാണെങ്കിൽ ഉൾപ്പെടെ.
The Difference Between data() and buf2Buf() in Dynamics AX 2012
Dynamics AX 2012 R3 അടിസ്ഥാനമാക്കിയുള്ളതാണ് ഈ പോസ്റ്റിലെ വിവരങ്ങൾ. ഇത് മറ്റ് പതിപ്പുകൾക്ക് സാധുതയുള്ളതോ അല്ലാത്തതോ ആകാം.
ഡൈനാമിക്സ് AX-ൽ ഒരു ടേബിൾ ബഫറിൽ നിന്ന് മറ്റൊന്നിലേക്ക് എല്ലാ ഫീൽഡുകളുടെയും മൂല്യം പകർത്തേണ്ടിവരുമ്പോൾ, നിങ്ങൾ പരമ്പരാഗതമായി ഇനിപ്പറയുന്ന എന്തെങ്കിലും ചെയ്യും:
ഇത് നന്നായി പ്രവർത്തിക്കുന്നു, മിക്ക കേസുകളിലും പോകാനുള്ള വഴിയാണ്.
എന്നിരുന്നാലും, പകരം buf2Buf ഫംഗ്ഷൻ ഉപയോഗിക്കാനുള്ള ഓപ്ഷനും നിങ്ങൾക്കുണ്ട്:
ഇതും നന്നായി പ്രവർത്തിക്കുന്നു. അപ്പോൾ എന്താണ് വ്യത്യാസം?
വ്യത്യാസം buf2Buf സിസ്റ്റം ഫീൽഡുകൾ പകർത്തുന്നില്ല എന്നതാണ്. സിസ്റ്റം ഫീൽഡുകളിൽ RecId, TableId, ഒരുപക്ഷേ ഏറ്റവും പ്രധാനമായി ഈ സന്ദർഭത്തിൽ, DataAreaId പോലുള്ള ഫീൽഡുകൾ ഉൾപ്പെടുന്നു. രണ്ടാമത്തേത് ഏറ്റവും പ്രധാനമായതിന്റെ കാരണം, ഡാറ്റയ്ക്ക് () പകരം നിങ്ങൾ ബുഫ് 2ബഫ് () ഉപയോഗിക്കുന്ന ഏറ്റവും സാധാരണമായ കേസ് കമ്പനി അക്കൗണ്ടുകൾക്കിടയിൽ റെക്കോർഡുകൾ ഡ്യൂപ്ലിക്കേറ്റ് ചെയ്യുമ്പോൾ ആണ്, സാധാരണയായി ചേഞ്ച് കമ്പനി കീവേഡ് ഉപയോഗിച്ച്.
ഉദാഹരണത്തിന്, നിങ്ങൾ "ഡാറ്റ്" കമ്പനിയിലാണെങ്കിൽ, "കോം" എന്ന് വിളിക്കപ്പെടുന്ന മറ്റൊരു കമ്പനി ഉണ്ടെങ്കിൽ, കസ്റ്റ് ടേബിളിലെ എല്ലാ റെക്കോർഡുകളും ഇതിൽ നിന്ന് പകർത്താൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ:
{
buf2Buf(custTableFrom, custTableTo);
custTableTo.insert();
}
ഈ സാഹചര്യത്തിൽ, ഇത് പ്രവർത്തിക്കും, കാരണം ബഫ് 2ബഫ് സിസ്റ്റം ഫീൽഡുകൾ ഒഴികെയുള്ള എല്ലാ ഫീൽഡ് മൂല്യങ്ങളും പുതിയ ബഫറിലേക്ക് പകർത്തുന്നു. പകരം നിങ്ങൾ ഡാറ്റ () ഉപയോഗിച്ചിരുന്നെങ്കിൽ, പുതിയ റെക്കോർഡ് "കോം" കമ്പനി അക്കൗണ്ടുകളിൽ ചേർക്കുമായിരുന്നു, കാരണം ആ മൂല്യം പുതിയ ബഫറിലേക്കും പകർത്തുമായിരുന്നു.
(വാസ്തവത്തിൽ, ഇത് ഒരു ഡ്യൂപ്ലിക്കേറ്റ് കീ പിശകിന് കാരണമാകുമായിരുന്നു, പക്ഷേ നിങ്ങൾക്ക് വേണ്ടത് അതല്ല).