मेरा मामला "डिफ़ॉल्ट आयाम" परिदृश्य था, इसलिए मुझे थोड़ा अनुकूलित करना पड़ा। इस विधि मैं अंत में प्रयोग किया जाता है:
DimensionAttribute
मेज पर एक नए क्षेत्र नाम Number
जोड़ने तो इस पद्धति जोड़ें:
public static DimensionAttribute findByNumber(DimensionOrdinal _number)
{
DimensionAttribute dimensionAttribute;
select firstonly dimensionAttribute where dimensionAttribute.Number == _number;
return dimensionAttribute;
}
यह स्पष्ट रूप से एक इसी संख्या के साथ आयाम को दिखाता है।
public void addItemNumber(DimensionOrdinal _idx, SysDim _value)
{
DimensionAttributeValue attrValue;
DimensionAttribute attr = DimensionAttribute::findByNumber(_idx);
if (!attr)
throw error(strFmt("@SYS342559", _idx));
attrValue = DimensionAttributeValue::findByDimensionAttributeAndValue(attr, _value, false, true);
this.addItemValues(attr.RecId, attrValue.RecId, attrValue.HashKey);
}
DimensionAttributeValueSetStorage
श्वेत पत्र @dlannoye उल्लेख में वर्णित के रूप संभालती "डिफ़ॉल्ट आयाम":
DimensionAttributeValueSetStorage
वर्ग पर विधि जोड़ें।
फिर इसी कोड इस तरह पढ़ें:
dimensionStorage = DimensionAttributeValueSetStorage::find(salesTable.DefaultDimension);
dimensionStorage.addItemNumber(1, "abc");
salesTable.DefaultDimension = dimensionStorage.save();
स्रोत
2012-01-30 11:09:21
मैं हाल ही में कहा था कि वित्तीय आयाम एक अलग में जमा हो जाती 2012 में टेबल और वे भी असीमित हैं। मुझे अभी तक देखने का मौका नहीं मिला है, लेकिन मेरा अनुमान यह होगा कि यह इनवेंटडिम जैसा है जहां आप करते हैं :: FindOrCreate() और आपके पास आविष्कार DimId है। सुनिश्चित नहीं है कि यह आपको सही दिशा में इंगित करने में मदद कर सकता है। –
आप सही हैं, लेकिन कोई आसान खोज नहीं है Orcreate(), सभी संदर्भ रिकॉइड हैं, याद रखें :) –
मेरे पास अब तक एक्सएक्स 2012 को देखने के लिए समय नहीं है। मेरे पास काम करने के पीछे एक प्रमुख माइक्रोसॉफ्ट समर्थन प्रतिनिधि है, लेकिन हम 200 9 में हैं और मुझे यकीन है कि अगर मैं उन्हें 2012 प्रोग्रामिंग प्रश्न पूछता हूं तो वह उलझन में होगा। इच्छा है कि मैं और मदद कर सकता हूं। –