Callable version

Callable ah = new AttributeHelper();
	
Object value = ah.call('getItemAttributeValue', new Map<String,Object>{'item'=>qli, 'attributeName'=>'ATTR_INSTALLMENTS_ELIGIBILITY', 'useAttributeDisplayName'=>false, 'useDisplayTextForValues'=>true});
  

Version agnostic (V1 & V2) attribute getters: OrderItem, QuoteLineItem, OpportunityLineItem

  1. Get attribute value by attribute code
    SObject item = [SELECT vlocity_cmt__JSONAttribute__c, PricebookEntry.Product2.vlocity_cmt__JSONAttribute__c, vlocity_cmt__AttributeSelectedValues__c,vlocity_cmt__AttributeMetadataChanges__c, PricebookEntry.Product2.vlocity_cmt__AttributeMetadata__c FROM OrderItem WHERE Id = '...'];
    System.debug( '🚸🚸 IMEI: ' + sfix.AttributeHelper.getItemAttributeValue( item, 'ATTR_IMEI' ) );
    
  2. Get attribute value by attribute name
    SObject item = [SELECT vlocity_cmt__JSONAttribute__c, PricebookEntry.Product2.vlocity_cmt__JSONAttribute__c, vlocity_cmt__AttributeSelectedValues__c,vlocity_cmt__AttributeMetadataChanges__c, PricebookEntry.Product2.vlocity_cmt__AttributeMetadata__c FROM OrderItem WHERE Id = '...'];
    System.debug( '🚸🚸 IMEI: ' + sfix.AttributeHelper.getItemAttributeValue( item, 'IMEI', true ) );
    
  3. Get selected display text for dropdown attribute
    SObject item = [SELECT vlocity_cmt__JSONAttribute__c, PricebookEntry.Product2.vlocity_cmt__JSONAttribute__c, vlocity_cmt__AttributeSelectedValues__c,vlocity_cmt__AttributeMetadataChanges__c, PricebookEntry.Product2.vlocity_cmt__AttributeMetadata__c FROM OrderItem WHERE Id = '...'];
    System.debug( '🚸🚸 Bandwidth: ' + sfix.AttributeHelper.getItemAttributeValue( item, 'ATTR_BANDWIDTH', false, true ) );
    
  4. Get all attributes (with display text for dropdown attributes)
    SObject item = [SELECT vlocity_cmt__JSONAttribute__c, PricebookEntry.Product2.vlocity_cmt__JSONAttribute__c, vlocity_cmt__AttributeSelectedValues__c,vlocity_cmt__AttributeMetadataChanges__c, PricebookEntry.Product2.vlocity_cmt__AttributeMetadata__c FROM OrderItem WHERE Id = '...'];
    System.debug( '🚸🚸 All attributes: ' + sfix.AttributeHelper.getItemAttributes( item, true ) );
    

Version agnostic (V1 & V2) attribute getters: Asset

  1. Get attribute value by attribute code
    SObject item = [SELECT vlocity_cmt__JSONAttribute__c, Product2.vlocity_cmt__JSONAttribute__c, vlocity_cmt__AttributeSelectedValues__c,vlocity_cmt__AttributeMetadataChanges__c, Product2.vlocity_cmt__AttributeMetadata__c FROM Asset WHERE Id = '...'];
    System.debug( '🚸🚸 IMEI: ' + sfix.AttributeHelper.getItemAttributeValue( item, 'ATTR_IMEI' ) );
    
  2. Get attribute value by attribute name
    SObject item = [SELECT vlocity_cmt__JSONAttribute__c, Product2.vlocity_cmt__JSONAttribute__c, vlocity_cmt__AttributeSelectedValues__c,vlocity_cmt__AttributeMetadataChanges__c, Product2.vlocity_cmt__AttributeMetadata__c FROM Asset WHERE Id = '...'];
    System.debug( '🚸🚸 IMEI: ' + sfix.AttributeHelper.getItemAttributeValue( item, 'IMEI', true ) );
    
  3. Get selected display text for dropdown attribute
    SObject item = [SELECT vlocity_cmt__JSONAttribute__c, Product2.vlocity_cmt__JSONAttribute__c, vlocity_cmt__AttributeSelectedValues__c,vlocity_cmt__AttributeMetadataChanges__c, Product2.vlocity_cmt__AttributeMetadata__c FROM Asset WHERE Id = '...'];
    System.debug( '🚸🚸 Bandwidth: ' + sfix.AttributeHelper.getItemAttributeValue( item, 'ATTR_BANDWIDTH', false, true ) );
    
  4. Get all attributes (with display text for dropdown attributes)
    SObject item = [SELECT vlocity_cmt__JSONAttribute__c, Product2.vlocity_cmt__JSONAttribute__c, vlocity_cmt__AttributeSelectedValues__c,vlocity_cmt__AttributeMetadataChanges__c, Product2.vlocity_cmt__AttributeMetadata__c FROM Asset WHERE Id = '...'];
    System.debug( '🚸🚸 All attributes: ' + sfix.AttributeHelper.getItemAttributes( item, true ) );
    

Version agnostic (V1 & V2) attribute getters: FulfilmentRequestLine

  1. Get attribute value by attribute code
    SObject item = [SELECT vlocity_cmt__JSONAttribute__c, vlocity_cmt__Product2Id__r.vlocity_cmt__JSONAttribute__c, vlocity_cmt__AttributeSelectedValues__c, vlocity_cmt__Product2Id__r.vlocity_cmt__AttributeMetadata__c FROM vlocity_cmt__FulfilmentRequestLine__c WHERE Id = '...'];
    System.debug( '🚸🚸 IMEI: ' + sfix.AttributeHelper.getItemAttributeValue( item, 'ATTR_IMEI' ) );
    
  2. Get attribute value by attribute name
    SObject item = [SELECT vlocity_cmt__JSONAttribute__c, vlocity_cmt__Product2Id__r.vlocity_cmt__JSONAttribute__c, vlocity_cmt__AttributeSelectedValues__c, vlocity_cmt__Product2Id__r.vlocity_cmt__AttributeMetadata__c FROM vlocity_cmt__FulfilmentRequestLine__c WHERE Id = '...'];
    System.debug( '🚸🚸 IMEI: ' + sfix.AttributeHelper.getItemAttributeValue( item, 'IMEI', true ) );
    
  3. Get selected display text for dropdown attribute
    SObject item = [SELECT vlocity_cmt__JSONAttribute__c, vlocity_cmt__Product2Id__r.vlocity_cmt__JSONAttribute__c, vlocity_cmt__AttributeSelectedValues__c, vlocity_cmt__Product2Id__r.vlocity_cmt__AttributeMetadata__c FROM vlocity_cmt__FulfilmentRequestLine__c WHERE Id = '...'];
    System.debug( '🚸🚸 Bandwidth: ' + sfix.AttributeHelper.getItemAttributeValue( item, 'ATTR_BANDWIDTH', false, true ) );
    
  4. Get all attributes (with display text for dropdown attributes)
    SObject item = [SELECT vlocity_cmt__JSONAttribute__c, vlocity_cmt__Product2Id__r.vlocity_cmt__JSONAttribute__c, vlocity_cmt__AttributeSelectedValues__c, vlocity_cmt__Product2Id__r.vlocity_cmt__AttributeMetadata__c FROM vlocity_cmt__FulfilmentRequestLine__c WHERE Id = '...'];
    System.debug( '🚸🚸 All attributes: ' + sfix.AttributeHelper.getItemAttributes( item, true ) );
    

Version agnostic (V1 & V2) attribute getters: InventoryItem

  1. Get attribute value by attribute code
    SObject item = [SELECT vlocity_cmt__JSONAttribute__c, vlocity_cmt__ProductId__r.vlocity_cmt__JSONAttribute__c, vlocity_cmt__AttributeSelectedValues__c, vlocity_cmt__ProductId__r.vlocity_cmt__AttributeMetadata__c FROM vlocity_cmt__InventoryItem__c WHERE Id = '...'];
    System.debug( '🚸🚸 IMEI: ' + sfix.AttributeHelper.getItemAttributeValue( item, 'ATTR_IMEI' ) );
    
  2. Get attribute value by attribute name
    SObject item = [SELECT vlocity_cmt__JSONAttribute__c, vlocity_cmt__ProductId__r.vlocity_cmt__JSONAttribute__c, vlocity_cmt__AttributeSelectedValues__c, vlocity_cmt__ProductId__r.vlocity_cmt__AttributeMetadata__c FROM vlocity_cmt__InventoryItem__c WHERE Id = '...'];
    System.debug( '🚸🚸 IMEI: ' + sfix.AttributeHelper.getItemAttributeValue( item, 'IMEI', true ) );
    
  3. Get selected display text for dropdown attribute
    SObject item = [SELECT vlocity_cmt__JSONAttribute__c, vlocity_cmt__ProductId__r.vlocity_cmt__JSONAttribute__c, vlocity_cmt__AttributeSelectedValues__c, vlocity_cmt__ProductId__r.vlocity_cmt__AttributeMetadata__c FROM vlocity_cmt__InventoryItem__c WHERE Id = '...'];
    System.debug( '🚸🚸 Bandwidth: ' + sfix.AttributeHelper.getItemAttributeValue( item, 'ATTR_BANDWIDTH', false, true ) );
    
  4. Get all attributes (with display text for dropdown attributes)
    SObject item = [SELECT vlocity_cmt__JSONAttribute__c, vlocity_cmt__ProductId__r.vlocity_cmt__JSONAttribute__c, vlocity_cmt__AttributeSelectedValues__c, vlocity_cmt__ProductId__r.vlocity_cmt__AttributeMetadata__c FROM vlocity_cmt__InventoryItem__c WHERE Id = '...'];
    System.debug( '🚸🚸 All attributes: ' + sfix.AttributeHelper.getItemAttributes( item, true ) );