Ενημέρωση τιμής οικονομικής διάστασης από κώδικα X++ στο Dynamics 365
Δημοσιεύθηκε: 16 Φεβρουαρίου 2025 στις 12:01:00 μ.μ. 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, επομένως, εάν ενημερώσετε μια τιμή διάστασης για μια εγγραφή - που είναι ίσως το πιο συνηθισμένο σενάριο - θα πρέπει να βεβαιωθείτε ότι έχετε ενημερώσει το πεδίο διάστασης σε αυτήν την εγγραφή με τη νέα τιμή.