Ενημέρωση τιμής οικονομικής διάστασης από κώδικα X++ στο Dynamics 365
Δημοσιεύθηκε: 16 Φεβρουαρίου 2025 στις 12:01:00 μ.μ. UTC
Τελευταία ενημέρωση: 13 Νοεμβρίου 2025 στις 1:36:01 μ.μ. 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 FO Virtual Machine Dev ή Test σε λειτουργία Maintenance
- Δημιουργία πεδίου αναζήτησης για μια οικονομική διάσταση στο Dynamics 365
- Το Visual Studio κολλάει κατά την εκκίνηση ενώ φορτώνει πρόσφατα έργα
