Unable to export Business Rule in wM9.12

Hi,

We have installed the wM9.12 Business rule plugin in designer and have placed the licence key for business rule under the below path:

But when trying to export the business rule to the integration Server,we get the below error in Designer:

Export Failed:

Reason:
Could notexport project.Make sure you have slected the right server and that it is configured correctly.See documentation,the eclipse error log and check the IS Server log for more detailed information about the error

and below is the error thrown in IS error logs:

com.wm.app.b2b.server.ServiceException: java.sql.SQLSyntaxErrorException: [SoftwareAG][SQLServer JDBC Driver][SQLServer]Invalid object name ‘BusinessRulesTargetRuntimes’.
Caused by: com.wm.app.b2b.server.ServiceException: java.sql.SQLSyntaxErrorException: [SoftwareAG][SQLServer JDBC Driver][SQLServer]Invalid object name ‘BusinessRulesTargetRuntimes’.
Caused by: java.sql.SQLSyntaxErrorException: [SoftwareAG][SQLServer JDBC Driver][SQLServer]Invalid object name ‘BusinessRulesTargetRuntimes’.

when trying to test the startup service(wm.businessrules.admin:startup ) in wMBusinessRules package,it throws the below error;

om.wm.app.b2b.server.ServiceException: com.wm.app.b2b.server.ServiceException: java.sql.SQLSyntaxErrorException: [SoftwareAG][SQLServer JDBC Driver][SQLServer]Invalid object name ‘BusinessRulesTargetRuntimes’. at com.softwareag.rules.businessrulespackage.StartupManager.startup(StartupManager.java:91) at wm.businessrules.admin.startup(admin.java:221) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.wm.app.b2b.server.JavaService.baseInvoke(JavaService.java:404) at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:646) at com.wm.app.b2b.server.util.tspace.ReservationProcessor.process(ReservationProcessor.java:39) at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:49) at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:243) at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49) at com.wm.app.b2b.server.invoke.PipelineProcessor.process(PipelineProcessor.java:171) at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:299) at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:34) at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:377) at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:545) at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:382)

Can someone please assist on what configuration is missing.

Thanks.

Regards,
Swaathi

Hi,

Sorry missed the path where the business rule licence key has been placed in the above message.

\IntegrationServer\instances\default\packages\WmBusinessRules\config .

Kindly assist.

Thanks,
Swaathi

From the error it looks like the table “BusinessRulesTargetRuntimes” [When a Rules runtimes starts up and registers itself in the BUSINESSRULESTARGETRUNTIMES table] is not present in the DB.

Please check the DB where the product tables are configured , does this table exist.

If it does not , then run the Database Component Configurator for the product Business rules.

2 Likes

Hi Rakesh,

Thanks for your comments.

We have configured the table for BUSINESSRULESTARGETRUNTIMES and able to export successfully now.

But have one more query ,when creating the Decision table in the operators tab ,im able to see only 2 operators = and != and not able to see the other operators like >,<,etc.Could this be an installation problem?

Kindly advise.

Thanks,
Swaathi

This is the problem for the data type , If the field defined in the data model is of string type then you will get = and != operators only.

The shown operators are data type sensitive. If you have integer field in the data model then you will get the options of <,> etc. as well

1 Like

Hi Rakesh,

Thanks for your response.

Yes i can see the operators coming in for the fields defined as date.But when i import a xml schema having integer fields,it still appears as string fields in the document and data model.

For eg if below are defined in xsd:

<xs:element name=“DOB” type=“xs:date” minOccurs=“0” maxOccurs=“1” />
<xs:element name=“firstname” type=“xs:string” minOccurs=“0” maxOccurs=“1” />
<xs:element name=“age” type=“xs:integer” minOccurs=“0” maxOccurs=“1” />

when imported the first 2 fields datatype appear as date and string respectively,but the third field still appears as string even though declared as Integer.

Also if i try to manually create doc in designer there is no option for setting Datatype as integer,could see options as string,xml reference,document,etc.

Can you kindly comment on this.

Thank you very much.

Regards,
R.Swaathi

When you export xsd , for the integer field the data type appears as string but the corresponding content type is set to integer.
which is used to do validation of the data.
see the screenshot attached.

In order to create an integer field manually , you need to first select the data type as object , then from the Java wrapper select the corresponding java wrapper for integer i.e java.lang.Integer


Thanks Rakesh.

Sorry for bothering on this.But if i manually create a field having datatype as Object and contenttype as java.lang.integer im not able to select that field when creating the decision table in rule project :frowning:

And also for the xsd as per your comments when importing integer field from xsd , datatype appears as String and contenttype as java.lang.integer ,then should we manually change the integer fields after importing from xsd everytime before using the document as datamodel?Because we have many business rules mainly on the integer fields which requires >,< operators for the rule.

Thank you.

Regards,
Swaathi

Not conent type , the corresponding Java wrapper type should be selected as java.lang.Integer.
Also when you change the document which is used as a data model , then you need to sync the data model from the Business Rules perspective.

In my opinion you have two options :

  1. To modify all the document types created from xsd , convert the fields which are defined as integer to integer in document types and then create the data model and decision tables.

  2. Other option is to create an action which will do the comparison >,<,>=,<= and then returns the corresponding result. If you use this option then no need to modify the documents created from xsd.

Hi Rakesh,

Sorry,i overlooked your response.

Its working now if i set the wrapper type.

Thank you very much :)I am able to successfully work and export projects to IS.

Now when i try to export to MWS-i get the below error in Designer:
“An internal server error occurred. To resolve the problem please check the My webMethods Server log”

If the check the problems_log file in MWS,it shows the below:

/wm_rma/rest/content/projects
com.softwareag.rules.export.InternalException: javax.jcr.ItemNotFoundException: cannot read item /meta/default/wm_xt_fabricfolder/0000003175
at com.webmethods.caf.rules.rulepersistence.jcr.JackrabbitClient.getRuleProjectsFolder(JackrabbitClient.java:195)
at com.webmethods.caf.rules.rulepersistence.jcr.JackrabbitClient.getAllRuleProjectNames(JackrabbitClient.java:518)
at com.webmethods.caf.rules.rulepersistence.JcrAccessHandler.getAllProjectNames(JcrAccessHandler.java:203)
at com.webmethods.caf.rules.publicapi.RuleProjectWrapper.getAllProjectNames(RuleProjectWrapper.java:704)

Is there any additional configuration that needs to be done for exporting business rules to MWS?

Thanks much,
Swaathi

Please verify , that the webMethods Business Rules is installed correctly for MWS.
And you are able to access the menu item Administration → Business -->webMethods Business Rule.

If everything looks correct at MWS side , then verify the MWS respository connection from Designer.
go to Windows -->Preferences → Software AG → Business Rules → My webMethods Server . make sure the connection details are correct. By default the RMI repository port is : 10999.

Try with user Administrator. If you are using other user then that user should be given proper access to upload the rules to MWS repository.

1 Like

Hi Rakesh,

I can see Webmethods Business Rules under Administration–>Business->Webmethods business rules,but not able to access it (i.e)not able to click and view it.

And in Designer i have configured the MWS with the MWS hostname and the port as 8585 in the path mentioned by you.(should this be the MWS port,or the RMI repository port).

Also is there any way we can check if the MWS repository server is set?.

Thanks,
Swaathi

Inside Webmethods Business Rules Menu you should see welcome page. All the Rules project deployed comes under this entry.

You have to use the RMI repository port here , By default i will be 10999.
Try the above port , you should be able to export Rules project to MWS then.

I am not sure about this , Let’s wait for other community members to comment.

Thanks Rakesh for your time and comments.

But even if i try with port 10999,i get error.

Waiting if someone let me know if there is a way to check the MWS Server repository configuration?

Thanks,
R.Swaathi

May be the issue is with access , can you please check if user “Administrator” has full access to Rules Projects.

login to MWS with sysadmin user , Navigate to Folders > My webMethods Applications > webMethods Application Data
There you will see Rules Projects, click on Tools → Permission menu , edit the permission and grant all access to My webMethods Administrator role. Save it.

After giving the access try exporting the Rules project from Designer to MWS.

Log in as sysadmin to MWS. Go to: “Administrative Folders > Administration
Dashboard > Configuration > CAF Application Runtime Configuration”.

Search the deployed applications for “wm_mws_config”.
Open the found application.
Click the “Web Application > Environment Entries” link.

There you will get all the port entries related to RMI. For exporting rules project we need to connect to rmiPort , default 10999.
Screenshot attached for reference.