Miklix

Dynamics 365 дээрх X++ кодоос санхүүгийн хэмжүүрийн утгыг шинэчил

Нийтэлсэн: 2025 оны гуравдугаар сарын 19 21:36:05 (UTC)

Энэ нийтлэлд кодын жишээг оруулан Dynamics 365 дээрх X++ кодоос санхүүгийн хэмжээсийн утгыг хэрхэн шинэчлэх талаар тайлбарлана.


Энэ хуудсыг аль болох олон хүнд хүртээмжтэй болгох үүднээс англи хэлнээс орчуулсан. Харамсалтай нь машин орчуулга нь төгс төгөлдөр технологи болоогүй байгаа тул алдаа гарч болзошгүй. Хэрэв та хүсвэл англи хэл дээрх эх хувилбарыг эндээс үзэх боломжтой.

Update Financial Dimension Value from X++ Code in Dynamics 365

Энэхүү нийтлэлд байгаа мэдээлэл нь Dynamics 365 дээр үндэслэгдсэн байна. Мөн Dynamics AX 2012 дээр ажиллах ёстой, гэхдээ би үүнийг тодорхой туршиж үзээгүй.

Саяхан би санхүүгийн нэг хэмжээний утгыг тодорхой нэг хэлбэрийн логик дээр үндэслэн шинэчлэх үүрэг хүлээсэн.

Та магадгүй мэдэж байгаа байх, ч гэсэн Dynamics AX 2012-аас хойш санхүүгийн хэмжээг тусдаа хүснэгтүүдэд хадгалдаг бөгөөд RecId-ээр дамжуулан, ихэвчлэн DefaultDimension талбарт дурдагддаг.

Хэмжээтэй ажиллах бүтцийн хувьд нэлээд төвөгтэй бөгөөд би үүний талаар баримт бичиг дахин унших шаардлагатай болдог, магадгүй учир нь би үүнийг байнга ажилладаг зүйл биш юм.

Ямар ч байсан, оршин байгаа хэмжээг шинэчлэх нь ихэвчлэн тохиолддог зүйл тул би дуртай жороо бичих гэж бодсон юм ;-)


Статик ашигтай арга нь дараах байдлаар харагдах болно:

public static DimensionDefault updateDimension( DimensionDefault    _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-г буцаадаг бөгөөд хэрэв бүртгэлийн хэмжээний утгыг шинэчилж байгаа бол - энэ нь хамгийн түгээмэл тохиолдол байх - та шинэ утгатай хэмжээг тухайн бүртгэл дээр шинэчлэхийг зөвшөөрөх хэрэгтэй.

Bluesky дээр хуваалцаарайFacebook дээр хуваалцахLinkedIn дээр хуваалцахTumblr дээр хуваалцахX дээр хуваалцаарайLinkedIn дээр хуваалцахPinterest дээрх пин

Миккел Кристенсен

Зохиогчийн тухай

Миккел Кристенсен
Миккел бол miklix.com сайтыг бүтээгч, эзэмшигч юм. Тэрээр мэргэжлийн компьютерийн программист/програм хангамж хөгжүүлэгчээр 20 гаруй жил ажилласан туршлагатай бөгөөд одоогоор Европын томоохон мэдээллийн технологийн корпорацид бүтэн цагаар ажиллаж байна. Блог хөтлөөгүй үедээ тэрээр чөлөөт цагаа олон төрлийн сонирхол, хобби, үйл ажиллагаанд зарцуулдаг бөгөөд энэ нь энэ вэб сайтад багтсан олон янзын сэдвүүдэд тодорхой хэмжээгээр тусгагдсан байж магадгүй юм.