Miklix

డైనమిక్స్ AX 2012 లో డేటా() మరియు buf2Buf() మధ్య వ్యత్యాసం

ప్రచురణ: 15 ఫిబ్రవరి, 2025 10:54:26 PM UTCకి

ఈ వ్యాసం డైనమిక్స్ AX 2012లో buf2Buf() మరియు data() పద్ధతుల మధ్య తేడాలను వివరిస్తుంది, ప్రతి ఒక్కటి ఎప్పుడు ఉపయోగించడం సముచితమో మరియు X++ కోడ్ ఉదాహరణతో సహా.


వీలైనంత ఎక్కువ మందికి అందుబాటులో ఉండేలా ఈ పేజీని ఇంగ్లీష్ నుండి యాంత్రికంగా అనువదించారు. దురదృష్టవశాత్తు, యాంత్రిక అనువాదం ఇంకా పరిపూర్ణమైన సాంకేతికత కాదు, కాబట్టి లోపాలు సంభవించవచ్చు. మీరు కోరుకుంటే, మీరు అసలు ఆంగ్ల సంస్కరణను ఇక్కడ చూడవచ్చు:

The Difference Between data() and buf2Buf() in Dynamics AX 2012

ఈ పోస్ట్‌లోని సమాచారం డైనమిక్స్ AX 2012 R3 ఆధారంగా రూపొందించబడింది. ఇది ఇతర వెర్షన్‌లకు చెల్లుబాటు కావచ్చు లేదా చెల్లకపోవచ్చు.

మీరు డైనమిక్స్ AXలో ఒక టేబుల్ బఫర్ నుండి మరొక టేబుల్‌కి అన్ని ఫీల్డ్‌ల విలువను కాపీ చేయవలసి వచ్చినప్పుడు, మీరు సాంప్రదాయకంగా ఇలా చేస్తారు:

toTable.data(fromTable);

ఇది బాగా పనిచేస్తుంది మరియు చాలా సందర్భాలలో ఇదే మార్గం.

అయితే, మీరు బదులుగా buf2Buf ఫంక్షన్‌ను ఉపయోగించే ఎంపికను కూడా కలిగి ఉన్నారు:

buf2Buf(fromTable, toTable);

ఇది కూడా బాగా పనిచేస్తుంది. మరి తేడా ఏమిటి?

తేడా ఏమిటంటే buf2Buf సిస్టమ్ ఫీల్డ్‌లను కాపీ చేయదు. సిస్టమ్ ఫీల్డ్‌లలో RecId, TableId మరియు బహుశా ఈ సందర్భంలో ముఖ్యంగా DataAreaId వంటి ఫీల్డ్‌లు ఉంటాయి. రెండోది చాలా ముఖ్యమైనది కావడానికి కారణం ఏమిటంటే, మీరు డేటా()కి బదులుగా buf2Buf()ని ఉపయోగించే అత్యంత సాధారణ సందర్భం కంపెనీ ఖాతాల మధ్య రికార్డులను నకిలీ చేసేటప్పుడు, సాధారణంగా changeCompany కీవర్డ్‌ని ఉపయోగించడం ద్వారా.

ఉదాహరణకు, మీరు "dat" కంపెనీలో ఉండి, "com" అనే మరో కంపెనీని కలిగి ఉంటే, మీరు CustTable లోని అన్ని రికార్డులను దీని నుండి కాపీ చేయాలనుకుంటే:

while select crossCompany : ['com'] custTableFrom
{
    buf2Buf(custTableFrom, custTableTo);
    custTableTo.insert();
}

ఈ సందర్భంలో, buf2Buf సిస్టమ్ ఫీల్డ్‌లు మినహా అన్ని ఫీల్డ్ విలువలను కొత్త బఫర్‌కు కాపీ చేస్తుంది కాబట్టి ఇది పనిచేస్తుంది. మీరు బదులుగా data()ని ఉపయోగించి ఉంటే, కొత్త రికార్డ్ "com" కంపెనీ ఖాతాలలో చొప్పించబడి ఉండేది ఎందుకంటే ఆ విలువ కొత్త బఫర్‌కు కూడా కాపీ చేయబడి ఉండేది.

(వాస్తవానికి, దాని ఫలితంగా డూప్లికేట్ కీ ఎర్రర్ వచ్చి ఉండేది, కానీ మీరు కోరుకునేది కూడా అది కాదు).

బ్లూస్కీలో షేర్ చేయండిఫేస్‌బుక్‌లో షేర్ చేయండిలింక్డ్ఇన్‌లో షేర్ చేయండిTumblrలో షేర్ చేయండిX లో షేర్ చేయండిలింక్డ్ఇన్‌లో షేర్ చేయండిPinterestలో పిన్ చేయండి

మికెల్ బ్యాంగ్ క్రిస్టెన్సేన్

రచయిత గురుంచి

మికెల్ బ్యాంగ్ క్రిస్టెన్సేన్
మిక్కెల్ miklix.com సృష్టికర్త మరియు యజమాని. అతనికి ప్రొఫెషనల్ కంప్యూటర్ ప్రోగ్రామర్/సాఫ్ట్‌వేర్ డెవలపర్‌గా 20 సంవత్సరాలకు పైగా అనుభవం ఉంది మరియు ప్రస్తుతం ఒక పెద్ద యూరోపియన్ ఐటీ కార్పొరేషన్‌లో పూర్తి సమయం ఉద్యోగం చేస్తున్నాడు. బ్లాగింగ్ చేయనప్పుడు, అతను తన ఖాళీ సమయాన్ని విస్తృత శ్రేణి ఆసక్తులు, అభిరుచులు మరియు కార్యకలాపాలపై గడుపుతాడు, ఇవి కొంతవరకు ఈ వెబ్‌సైట్‌లో కవర్ చేయబడిన వివిధ అంశాలలో ప్రతిబింబిస్తాయి.