Dynamic Attribute Set DMT error

Crazy thing is I was just at the Epicor Insights conference and went to an AUOM workshop where the instructor, unprompted about the matter, mentioned you can use Dynamic Attributes without AUOM. That’s what set me on this path in the first place.

Appreciate your help and your time. Thanks @jbooker, @jkane .

Last Post…

I get the same error from the API via Erp.BO.DynAttrValueSetSvc/Update in a company without AUOM.

Looks like the Part Attributes slider is an app-open of view: Erp.UI.DynAttrValueEntry
I believe this is different than the DynAttribute Set Maintenance app as it take a value-in, etc, etc
You might gleen something if you try adding a menu to that app.

Anyway, tracing that slider, I found it calls:

Erp.BO.DynAttrValueSetSvc/UpdateAttributeValuesObject which takes the following schema of Part and Attribute values and appears to create the Attribute Set and return it’s ID and works for a Class having blank Calculation Type.

{
    "attrClassID": "JAB-AREA-LBS",
    "commitLineDtl": false,
    "dynAttrValueDS": {
        "InventoryDynAttrValues": [
            {
                "Height": 4,
                "Length": 4,
                "Volume": 0,
                "Width": 4,
                "InventoryAttributeColumnCompany": "XXXXXX",
                "InventoryAttributeColumnAttrClassID": "JAB-AREA-LBS",
                "InventoryAttributeColumnAttributeSetID": 0,
                "InventoryAttributeColumnRelatedToSchemaName": "Erp",
                "InventoryAttributeColumnRelatedToTableName": "Part",
                "InventoryAttributeColumnPartNum": "00P1",
                "InventoryAttributeColumnRelatedToSysRowID": "68cafa8f-0dd5-4ba5-b64c-b03a002e13ad",
                "InventoryAttributeColumnAttributeValueSeq": 0,
                "RowMod": "A",
                "SysRowID": "00000000-0000-0000-0000-000000000000"
            }
        ]
    },
    "inventoryDynAttrValueParamsTS": {
        "InventoryDynAttrValueSummary": [
            {
                "AttrClassID": "JAB-AREA-LBS",
                "Company": "XXXXXX",
                "DualQty": 0,
                "DualUM": "",
                "IUM": "",
                "OurQty": 0,
                "LineDesc": "",
                "PartNum": "00P1",
                "RemainingDualQty": 0,
                "RemainingOurQty": 0,
                "RelatedToSchemaName": "Erp",
                "RelatedToSysRowID": "68cafa8f-0dd5-4ba5-b64c-b03a002e13ad",
                "RelatedToTableName": "Part",
                "EnteredDualQty": 0,
                "EnteredOurQty": 0,
                "UsedInPlanning": false,
                "ErrorType": 0,
                "ErrorMsg": "",
                "NeedToUpdate": false,
                "TemplateWhereAvailable": 0,
                "ServiceError": false,
                "ServiceErrorMessage": "",
                "EntityAction1": "",
                "EntityAction2": "",
                "EntityActionMessage1": "",
                "EntityActionMessage2": "",
                "EntityActionMessageTitle1": "",
                "EntityActionMessageTitle2": "",
                "PerformUpdateOnClose": false,
                "ShowSummaryInformation": false,
                "PerformAttributeOnChangeEvent": false,
                "AttributeSetID": 0,
                "NumberOfPieces": 0,
                "CommittedSplitQty": 0,
                "RevisionNum": "",
                "TrackInventoryAttributes": false,
                "TrackInventoryByRevision": false,
                "SysRowID": "00000000-0000-0000-0000-000000000000",
                "RowMod": ""
            }
        ]
    },
    "ds": {
        "InventoryDynAttrValueSummary": [],
        "InventoryDynAttrValues": [
            {
                "Height": 4,
                "Length": 4,
                "Volume": 0,
                "Width": 4,
                "InventoryAttributeColumnCompany": "XXXXXX",
                "InventoryAttributeColumnAttrClassID": "JAB-AREA-LBS",
                "InventoryAttributeColumnAttributeSetID": 0,
                "InventoryAttributeColumnRelatedToSchemaName": "Erp",
                "InventoryAttributeColumnRelatedToTableName": "Part",
                "InventoryAttributeColumnPartNum": "00P1",
                "InventoryAttributeColumnRelatedToSysRowID": "68cafa8f-0dd5-4ba5-b64c-b03a002e13ad",
                "InventoryAttributeColumnAttributeValueSeq": 0,
                "RowMod": "A",
                "SysRowID": "00000000-0000-0000-0000-000000000000"
            }
        ]
    },
    "invTrasferParams": {
        "InvTransfer": []
    }
}

So there is a way to load them while also setting them to the respective part if you’re up for the json + API effort.

Just wanted to give a little warning about going down this road without AUOM.

You can DMT the attributes, but without it unless something has changed in the last 6 months to a year, there is no way to DMT the values on the Part itself.

Yes and No. There is no way to DMT new DynAttrSets, but if the DynAttrSet exists (because it was created on another part or added via API as above and you get the AttrSetID), you can use Part DMT to set the DefaultAttributeSetID field which indeed is the same as DMTing the values on the Part itself.

1 Like

Seconded!

1 Like

My question is what is the Related To value when you do not have AUOM?

Part is the default RelatedTo and nothing else is available for OOB instance with no AUOM or Configurator licenses.
Guessing only Part is available for Configurator as well since OP has it but I don’t know for sure.

Yeah, that is my assumption, but was wondering if there was something else when you don’t have the AUOM license. Wish I could test it and do a trace.

I see Part and only Part in my EDU w no AUOM

1 Like