Search Engine: Elastic

Article ID: 131681, created on Oct 27, 2017, last review on Jan 26, 2018

  • Applies to:
  • Operations Automation 7.2
  • Business Automation 7.2
  • Business Automation 7.3

Symptoms

With C++ SDK upgraded to to version 7.2, an atempt to build a plug-in with C++ SDK fails. The error description is similar to the following:

    Error: ../LISA/project.cc:157JAVA type must has Packer suffix. JAVA Type is Object. attribute type is INT
    Waf: Leaving directory `/root/DomainPlugins/SOMEPLUGIN/.build'
    Build failed: LISA compiler exit code '1' is non-zero. CMD is '['--info', '--server', '--amt', '--postgre'] /root/DomainPlugins/SOMEPLUGIN/SOMEPLUGIN.lsa'

Cause

1) After new JAVA attribute was introduced for LISA types, and C++ SDK was not reconfigured in a proper way so that it should not build Java wrappers for public methods.

2) Sometimes file LOCKHINT.lsa is missing

Resolution

In first case: 1. Change current working directory to the plug-in source directory. 2. Run

    grep -r 'LISA.new_task_gen' | grep wscript
  1. For every match found, after line features = 'lsaprogram', add the following line: install_java_dir = None,

    Alternatively, in diff format, the change should look like:

    --- a/wscript
    +++ b/wscript
    @@ -79,6 +79,7 @@ def build(bld):
    
    cnttask = LISA.new_task_gen(bld,
                    features        = 'lsaprogram',
    +               install_java_dir= None,
                    source          = '@@PROJECT@.lsa',
                    bodies          = [ 'bodies.cc' ],
                    internals       = [ 'internals.cc', 'plugin.cpp' ],
    

If file LOCKHINT.lsa is missing it is required to do the following:

Make sure file /root/EcommercePlugins//BM/lockHints/LOCKHINT.lsa exists with the following content:

Virtual Class LockHint "LockHints" {
  Attributes {
    Virtual STR HintResult;
  }
  Methods {
    const OrderStatusChangeLockHint(SalesOrder.OrderID, SalesOrder.OrderStatusID) return LockHint.HintResult;
const ETransactionCaptureLockHint(Payment) return LockHint.HintResult;
const CreateServiceLockHint(OItem.OIID) return LockHint.HintResult;
const OnServiceCreatedLockHint(OItem.OIID, Subscription.ExecStatus, SubscriptionServStatusHist.Comment, SubscriptionServStatusHist.LongComment, Subscription.vGateID) return LockHint.HintResult;
const AccountPropagateLockHint(Account.AccountID) return LockHint.HintResult;
const CheckCreditHoldAccountLockHint(Account.AccountID) return LockHint.HintResult;
const SubscriptionResetUsageLockHint(Subscription) return LockHint.HintResult;
  }
} 

If there is no such file it is required to add it.

After aforementioned actions performed try to build the plugin.

198398b282069eaf2d94a6af87dcb3ff caea8340e2d186a540518d08602aa065 e12cea1d47a3125d335d68e6d4e15e07 31987597efff5a3a9ce779cc203bbe5e 5356b422f65bdad1c3e9edca5d74a1ae 1941880841f714e458ae4dc3d9f3062d ef171e3fccb12bd8e09076a7b49212c0 b2c3b33425dfc50c7d41a2efaa7f84f3 1def515ca613a5505aa21a4affa96e6b

Email subscription for changes to this article
Save as PDF