edmiValidateGlobalRuleBN


 

EdmiError edmiValidateGlobalRuleBN(SdaiModel      modelId,
                                    SdaiString     globalRuleName, 
                                    SdaiRuleSchema ruleSchemaId,              
                                    SdaiString     userOutputFile, 
                                    SdaiLogical    *result); 

Invokes the EDMmodelChecker to validate the specified data model against the specified global rule. The specified global rule must be defined in the dictionary model (Express schema) that is the underlying schema of the specified data model, or the global rule must be defined in an EDMruleSchema appropriate to the specified data model. The actual data model must be open before this operation can be successfully performed. The expressions logging can be used to log (trace) the execution of the global rule in the EDMexpressVM. The EDMsupervisor and the interactive EDMdebugger can be used for testing and debugging global rules as well as getting detailed information of a validation process.

Arguments


TypeNameComment
SdaiModel

modelId

A numeric modelID that uniquely identifies the data model of interest in the EDMdatabase . The modelID is returned from the functions: sdaiCreateModel , sdaiCreateModelBN , sdaiOpenModelBN , edmiGetModel , edmiGetModelBN  , sdaiGetInstanceModel 

SdaiString

globalRuleName

Specifies the global rule to validate. Global rule names are case insensitive. Dependent of the <ruleSchemaId> argument, the actual global rule must be defined in the dictionary model (Express schema) that are the underlying schema of the <modelId> data model, or in the specified EDMruleSchema.

SdaiRuleSchema

ruleSchemaId

A numeric ruleSchemaID that uniquely identifies the rule schema instance in the EDMdatabase that defines the global rule specified in the <globalRuleName> argument. The specified global rule must be defined in the dictionary model (Express schema) that is the underlying schema of the specified data model <modelId> if the <ruleSchemaId> is set to zero. The ruleSchemaID can be retrieved by the edmiGetRuleSchema operation.

SdaiString

userOutputFile

Specifies the name of a file that will be used to receive the result of executing the xpxPrintf and xpxOutputValue function in the actual global rule. The specified file can be an existing file or the name of a file that will be created by the EDMmodelChecker. The default file extension is ".txt".
The output of the xpxPrintf and xpxOutputValue function in the actual global rule will be written to the EDMinterface current output device when the <userOutputFile> is set to NULL. The EDMinterface current output device can be defined by the edmiDefineOutputFunction operation.

SdaiLogical

result

Address of a SdaiLogical variable that will receive the result of the validation operation. The returned result is as follows:

  • sdaiTRUE: No global rule violation
  • sdaiFALSE: Actual data model violates specified global rule.
  • sdaiUNKNOWN: Unpredictable result due to unset values or error in operation. Use sdaiErrorQuery to check for error in operation.

Return Value


Error rendering macro 'excerpt-include' : User 'null' does not have permission to view the page 'US:_r_EDMInterface'.

Options


 

Example


 

EdmiError rstat;
 SdaiModel modelId;
 SdaiLogical result;
 . . .
 if (rstat = edmiValidateGlobalRuleBN (
 modelId, 
 "Product_Requires_Category",
 0, 
 "/usr/hkd/ifc/data/validation_print.text", 
 &result)) { 
 /* Error in operation */ 
 printf("\nError: %s in edmiValidateGlobalRuleBN\n", 
 edmiGetErrorText(rstat)); 
 goto error; 
 }
 switch (result) {
 case sdaiTRUE: 
 . . . /* No violation in operation */ 
 break; 
 case sdaiFALSE: 
 . . . /* Rule violation */ 
 break; 
 default: 
 . . . /* Unpredictable result */ 
 break; 
 }

 

See also

Filter by label

There are no items with the selected labels at this time.