Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagecpp
themeConfluence
EdmiError edmiRemoteGetAttrPrimitiveType(SdaiServerContext serverContextId,
                                           SdaiAttr          attributeId, 
                                           SdaiPrimitiveType *dataType, 
                                           SdaiInvocationId *edmiInvocationId);


Returns the required primitive type of the data values to be assigned to a specified attribute.

...

Arguments

...

TypeNameComment
SdaiServerContext

serverContextId

Context identification, from edmiDefineServerContext

SdaiAttr         

attributeId

The numeric attributeID that uniquely identifies the attribute definition instance in the _ EDMdatabase{_}.
AttributeIds are returned from the functions edmiRemoteGetAttrDefinition and edmiRemoteGetAttrDefinitionBN.

SdaiPrimitiveType

dataType

A variable that will receive the required primitive type of the data values that may be assigned to the attribute.

SdaiInvocationId

edmiInvocationId

Currently not used.

...

Return Value

...

Insert excerpt
US:_r_EDMInterface
US:_r_EDMInterface
nopaneltrue

 

Options

...

  

OptionComment
Option nameComment

 

Example

...

 

Code Block
languagecpp
 EdmiError rstat;
 SdaiServerContext myContext;
 SdaiRepository repositoryId;
 SdaiModel modelId;
 SdaiEntity entityId;
 SdaiString entityName;
 SdaiInstance instId;
 SdaiAttr attrId;
 SdaiPrimitiveType attrType;
 SdaiString stringId = "721212";
 SdaiInteger integerId = 721212;
 SdaiVoid value;
  
 /* In this example, the instance Id, instId
 is an input parameter. The type of instance 
 is not specified, but it is assumed to have 
 an ID attribute of either string or integer 
 type. */ 
  
 /* Create Server Context */
 rstat = edmiDefineServerContext("MyContext",
 "Johnny", "Supervisor", "cf37ftr", 
 "TCP", "9090", "MyServerHost", 
 NULL, NULL, NULL, NULL, NULL, &myContext); 
  
 /* Find the repositoryId and
 the modelId of the instance */ 
 rstat = edmiRemoteGetInstanceModel(myContext,
 instId, &repositoryId, &modelId, NULL); 
  
 /* Get instance type */
 rstat = edmiRemoteGetInstanceType(myContext,
 instId, &entityId, &entityName, NULL); 
  
 /* Get the Id of the ID attribute */
 rstat = edmiRemoteGetAttrDefinition(myContext, entityId,
 "ID", &attrId, NULL); 
 if (rstat == sdaiEATTRUNDEF) {
 printf("\nEntity %s does not have an ID attribute", entityName); 
 goto err; 
 }
  
 /* Find the primitive type of the attribute */
 rstat = edmiRemoteGetAttrPrimitiveType(myContext,
 attrId, &attrType, NULL); 
  
 /* Apply the proper ID format */
 switch(attrType) {
  
 case sdaiINTEGER: value = &integerId; 
 break; 
 case sdaiSTRING: value = &stringId; 
 break; 
 default: printf("\nInvalid ID attribute type"); 
 goto err; 
 }
  
 /* Insert the Id */
 rstat = edmiRemotePutAttrsBN(myContext, instId, 1, NULL,
 "ID", attrType, value); 
 . . .

 

See also

Filter by label (Content by label)
showLabelsfalse
showSpacefalse
cqllabel = "model" and parent = "6062220"