อัปเดตค่ามิติทางการเงินจากรหัส X++ ใน Dynamics 365
ที่ตีพิมพ์: 16 กุมภาพันธ์ 2025 เวลา 12 นาฬิกา 01 นาที 51 วินาที UTC
ปรับปรุงล่าสุด : 13 พฤศจิกายน 2025 เวลา 13 นาฬิกา 38 นาที 13 วินาที UTC
บทความนี้จะอธิบายวิธีการอัปเดตค่ามิติทางการเงินจากโค้ด X++ ใน Dynamics 365 รวมถึงตัวอย่างโค้ดด้วย
Update Financial Dimension Value from X++ Code in Dynamics 365
ข้อมูลในโพสต์นี้อิงตาม Dynamics 365 ซึ่งควรจะใช้งานได้ใน Dynamics AX 2012 เช่นกัน แต่ฉันไม่ได้ทดสอบอย่างชัดเจน
เมื่อไม่นานนี้ ฉันได้รับมอบหมายให้อัปเดตค่าของมิติทางการเงินเพียงมิติเดียวตามตรรกะรูปแบบบางอย่าง
อย่างที่คุณคงทราบแล้ว เนื่องจากมิติทางการเงินของ Dynamics AX 2012 จะถูกเก็บไว้ในตารางแยกต่างหากและอ้างอิงผ่าน RecId โดยปกติจะอยู่ในฟิลด์ DefaultDimension
กรอบงานทั้งหมดสำหรับการจัดการมิติมีความซับซ้อนพอสมควร และฉันมักพบว่าตัวเองต้องอ่านเอกสารเกี่ยวกับเรื่องนี้ซ้ำอีกครั้ง บางทีอาจเป็นเพราะว่าไม่ใช่สิ่งที่ฉันใช้บ่อยนัก
อย่างไรก็ตาม การอัปเดตฟิลด์ในชุดมิติที่มีอยู่เป็นสิ่งที่เกิดขึ้นบ่อยครั้ง ดังนั้น ฉันจึงคิดว่าจะเขียนถึงสูตรโปรดของฉัน ;-)
วิธียูทิลิตี้แบบคงที่อาจมีลักษณะดังนี้:
Name _dimensionName,
DimensionValue _dimensionValue)
{
DimensionAttribute dimAttribute;
DimensionAttributeValue dimAttributeValue;
DimensionAttributeValueSetStorage dimStorage;
DimensionDefault ret;
;
ret = _defaultDimension;
ttsbegin;
dimStorage = DimensionAttributeValueSetStorage::find(_defaultDimension);
dimAttribute = DimensionAttribute::findByName(_dimensionName);
if (_dimensionValue)
{
dimAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValue( dimAttribute,
_dimensionValue,
true,
true);
dimStorage.addItem(dimAttributeValue);
}
else
{
dimStorage.removeDimensionAttribute(dimAttribute.RecId);
}
ret = dimStorage.save();
ttscommit;
return ret;
}
วิธีการนี้จะส่งคืน DimensionDefault RecId ใหม่ (หรือเดิม) ดังนั้น หากต้องการอัปเดตค่ามิติสำหรับเรกคอร์ด ซึ่งน่าจะเป็นสถานการณ์ที่พบบ่อยที่สุด คุณควรตรวจสอบให้แน่ใจว่าได้อัปเดตฟิลด์มิติในเรกคอร์ดนั้นด้วยค่าใหม่
อ่านเพิ่มเติม
หากคุณชอบโพสต์นี้ คุณอาจชอบคำแนะนำเหล่านี้ด้วย:
- การสร้างฟิลด์การค้นหาสำหรับมิติทางการเงินใน Dynamics 365
- ใส่ Dynamics 365 FO Virtual Machine Dev หรือ Test เข้าสู่โหมดการบำรุงรักษา
- Visual Studio ค้างขณะเริ่มต้นระบบขณะโหลดโปรเจ็กต์ล่าสุด
