cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Learn all about the Community Ranking System, a fun gamification element of the PTC Community. X

How to access Thingworx EntityUtilities methods

amittal-3
13-Aquamarine

How to access Thingworx EntityUtilities methods

Hello,

I have a requirement, to check if a particular entity (input - name, type) exists in Thingworx or not. For that, I came across 'EvaluateVisibilityPermissions'

var params = {
	    name: EntityName    /* STRING */,
	    type: "MediaEntity" /* STRING */
    };
    // result: BOOLEAN
    var isExist = Resources["SecurityServices"].EvaluateVisibilityPermission(params);

But this method comes with a limitation that, if the permission is not set to the user, this service returns false.

What I would like to have is check if the entity is present or not, regardless of visibility permissions.

For that I came across a resource https://support.ptc.com/cs/help/thingworx_hc/thingworx_7.0_hc/index.jspx?id=ID103384447&action=show 'Entity Utilities'.

This class (EntityUtilities) has a method, "findEntityDirect" which can solve my purpose, but I am not able to understand how to use this method in my custom Thingworx services. If I understand correctly it is similar to "EntityServices" (http://support.ptc.com/cs/help/thingworx_hc/thingworx_6.0_hc/index.jspx?id=ID1410648636&action=show). I am able to see 'EntityServices' while creating my custom service in snippets, but I cannot find 'EntityUtilities'. Refer attached image.

EntityServices.PNG

Please let me know how to get EntityUtilities class, so that I am able to use 'findEntityDirect' method.

 

Thanks in advance

Aditya Mittal

ACCEPTED SOLUTION

Accepted Solutions

This is my code to get a reference to any kind of entity:

function getEntity(myEntityName) {
    
    var collectionName = 'Things';
    var entityType ='Thing';
    var isThing = true;
    var isThingTemplate = false;
    var isThingShape = false;
    var isDataShape = false;
	var isModelTag = false;
	var isNetwork = false;
	var isDataTag = false;
	var isOrganization = false;
    
    var entity = Things[myEntityName];
    if (entity==null) {
        isThing = false;
        entity = ThingTemplates[myEntityName];
        isThingTemplate=true;
        collectionName = 'ThingTemplates';
        entityType = 'ThingTemplate';
     }
    if (entity==null) {
        isThingTemplate=false;
        entity = ThingShapes[myEntityName];
        isThingShape = true;
        collectionName = 'ThingShapes';
        entityType = 'ThingShape';
     }
    if (entity==null) {
        isThingShape=false;
        entity = DataShapes[myEntityName];
        isDataShape = true;
        collectionName = 'DataShapes';
        entityType = 'DataShape';
     }
    if (entity==null) {
        isDataShape=false;
        entity = ModelTags[myEntityName];
        isModelTag = true;
        collectionName = 'ModelTags';
        entityType = 'ModelTagVocabulary';
     }
    if (entity==null) {
        isModelTag=false;
        entity = Networks[myEntityName];
        isNetwork = true;
        collectionName = 'Networks';
        entityType = 'Network';
     }
    
    if (entity==null) {
        isNetwork=false;
        entity = DataTags[myEntityName];
        isDataTag = true;
        collectionName = 'DataTags';
        entityType = 'DataTagVocabulary';
     }
    
    if (entity==null) {
        isDataTags=false;
        entity = Organizations[myEntityName];
        isOrganization = true;
        collectionName = 'Organizations';
        entityType = 'Organitzation';
    }
    
     return {
		name: myEntityName,
        entity: entity,
        isThingShape: isThingShape,
        isThing: isThing,
        isThingTemplate: isThingTemplate,
        isDataShape: isDataShape,
		isModelTag: isModelTag,
		isNetwork: isNetwork,
		isDataTag: isDataTag,
		isOrganization: isOrganization,
        collectionName: collectionName,
        type: entityType
     };
    }

with it, you can easily can do the following check:

var entityExists = (getEntity(theEntityName).entity!=null);

 

 

 

View solution in original post

1 REPLY 1

This is my code to get a reference to any kind of entity:

function getEntity(myEntityName) {
    
    var collectionName = 'Things';
    var entityType ='Thing';
    var isThing = true;
    var isThingTemplate = false;
    var isThingShape = false;
    var isDataShape = false;
	var isModelTag = false;
	var isNetwork = false;
	var isDataTag = false;
	var isOrganization = false;
    
    var entity = Things[myEntityName];
    if (entity==null) {
        isThing = false;
        entity = ThingTemplates[myEntityName];
        isThingTemplate=true;
        collectionName = 'ThingTemplates';
        entityType = 'ThingTemplate';
     }
    if (entity==null) {
        isThingTemplate=false;
        entity = ThingShapes[myEntityName];
        isThingShape = true;
        collectionName = 'ThingShapes';
        entityType = 'ThingShape';
     }
    if (entity==null) {
        isThingShape=false;
        entity = DataShapes[myEntityName];
        isDataShape = true;
        collectionName = 'DataShapes';
        entityType = 'DataShape';
     }
    if (entity==null) {
        isDataShape=false;
        entity = ModelTags[myEntityName];
        isModelTag = true;
        collectionName = 'ModelTags';
        entityType = 'ModelTagVocabulary';
     }
    if (entity==null) {
        isModelTag=false;
        entity = Networks[myEntityName];
        isNetwork = true;
        collectionName = 'Networks';
        entityType = 'Network';
     }
    
    if (entity==null) {
        isNetwork=false;
        entity = DataTags[myEntityName];
        isDataTag = true;
        collectionName = 'DataTags';
        entityType = 'DataTagVocabulary';
     }
    
    if (entity==null) {
        isDataTags=false;
        entity = Organizations[myEntityName];
        isOrganization = true;
        collectionName = 'Organizations';
        entityType = 'Organitzation';
    }
    
     return {
		name: myEntityName,
        entity: entity,
        isThingShape: isThingShape,
        isThing: isThing,
        isThingTemplate: isThingTemplate,
        isDataShape: isDataShape,
		isModelTag: isModelTag,
		isNetwork: isNetwork,
		isDataTag: isDataTag,
		isOrganization: isOrganization,
        collectionName: collectionName,
        type: entityType
     };
    }

with it, you can easily can do the following check:

var entityExists = (getEntity(theEntityName).entity!=null);

 

 

 

Announcements


Top Tags