My issue is that what ever I use as my input args is what prints out as my 
return args along with the args number. Can that be caused by the routine not 
returning anything?

Stephen Jackson


-----Original Message-----
From: Jeff Powell [[email protected]]
Received: Friday, 18 Feb 2011, 6:43pm
To: U2 Users List [[email protected]]
Subject: Re: [U2] UniSubroutineException: Unknown Error [30102]  Occurred


The arg count going in needs to be n+1. Arg 0 will be the return data.

     public ArrayList callSub(String sRoutine, ArrayList args)
     {

         Iterator it = args.iterator();
         ArrayList oArgs = new ArrayList();

         int iArgs = args.size();
         System.out.println("Args: " + iArgs);
         try
         {
             UniSubroutine uoSub = ses.subroutine(sRoutine, iArgs + 1);

             int iArg = 0;

             uoSub.setArg(iArg++, "");       // dummy argument - this 
will become the return value
// Set user arguments
             while (it.hasNext())
             {
                 Object arg=it.next();
//                System.out.println("InputArg["+iArg+"]="+arg);
                 uoSub.setArg(iArg++, arg);
             }
// call

             uoSub.call();

// get returned parameters
             iArgs = uoSub.getNumArgs();
             for (int i = 0; i < iArgs; i++)
             {
                 String arg=uoSub.getArg(i);
//                System.out.println("OutputArg["+i+"]="+arg);
                 oArgs.add(arg);
             }
         } catch (Exception ex)
         {
             System.err.println("Call to " + sRoutine + " failed.");
             ex.printStackTrace(System.err);
         }
         return oArgs;
     }



On 02/18/2011 01:16 PM, Stephen Jackson wrote:
> So we created a basic program to call so we are getting closer, thanks for
> all your input it is putting us on the correct path.  I do seem to have
> some issues when trying to get the results.  What is happening is it is
> just spitting out the input parameters ..
>
>
>
>     //System.err.println(command.response());
>     UniSubroutine sub = session.subroutine("S.XTMS.TEST.BASIC", 1);
>     sub.setArg(0, "0491865");
>
>     sub.call();
>     sub.resetArgs();
>     System.err.println(sub.getNumArgs());
>
>     System.err.println(sub);
>     System.err.println(sub.getArg(0));
>     //session.disconnect();
>     //String r = sub.getArg(0);
>     //String r1 = sub.getArg(1);
>
>
>
> Logging statements:
>
> Version Number :4.1.3
> Max Open Files :32
> Account Path :/datatel/test/10day/development
> Locking Strategy :0
> Release Strategy :12
> Calling S.XTMS.TEST.LOOKUP...
> 1
> asjava.uniobjects.UniSubroutine@6791d8c1
> 0491865  ->>>>  same as input, not the result from the routine.
>
>
>
>
>
>
> On WednesdayF/16/11 5:45 PM, "Hona, David"<[email protected]>  wrote:
>
>> Does this subroutine do file I/O? Does it explicitly open the file or
>> assume some other program or subroutine opens it and stores the file
>> variable in labelled common...? Sometimes it can even be a call
>> subroutine call that is called using a labelled common variable (CALL
>> @MYSUB)...
>>
>> Easiest thing to do is look how the subroutine is used now...if you don't
>> emulate the same initialisation sequence it requires from UV native
>> runtime environment in Java runtime environment...it more than likely
>> will not work.
>>
>> -----Original Message-----
>> From: [email protected]
>> [mailto:[email protected]] On Behalf Of Stephen Jackson
>> Sent: Thursday, 17 February 2011 1:28 AM
>> To: [email protected]
>> Subject: [U2] UniSubroutineException: Unknown Error [30102] Occurred
>>
>> I am new to the U2 java api.  I am trying to make a subroutine call but
>> get the following Exception.  It is not in the documentation and I have
>> not had a lot of luck tracking it down.  I am able to make a simple query
>> so not sure if there is some configuration or something I am not aware of
>> which is causing the error.
>>
>> Version Number :4.1.3
>> Max Open Files :32
>> Account Path :/mypath
>> Locking Strategy :0
>> Release Strategy :12
>> Calling S.XTMS.TEST.LOOKUP...
>> [IBM U2][UniObjects for Java][UniSubroutine Exception][ErrorCode:
>> 30102]Unknown Error [30102]  Occurred
>> asjava.uniobjects.UniSubroutineException: Unknown Error [30102]  Occurred
>>     at asjava.uniobjects.UniSubroutine.call(UniSubroutine.java:150)
>>
>> Any help would be much appreciated.
>>
>>
>> _______________________________________________
>> U2-Users mailing list
>> [email protected]
>> http://listserver.u2ug.org/mailman/listinfo/u2-users
>>
>> ************** IMPORTANT MESSAGE *****************************
>> This e-mail message is intended only for the addressee(s) and contains
>> information which may be
>> confidential.
>> If you are not the intended recipient please advise the sender by return
>> email, do not use or
>> disclose the contents, and delete the message and any attachments from
>> your system. Unless
>> specifically indicated, this email does not constitute formal advice or
>> commitment by the sender
>> or the Commonwealth Bank of Australia (ABN 48 123 123 124) or its
>> subsidiaries.
>> We can be contacted through our web site: commbank.com.au.
>> If you no longer wish to receive commercial electronic messages from us,
>> please reply to this
>> e-mail by typing Unsubscribe in the subject line.
>> **************************************************************
>>
>>
>>
>> _______________________________________________
>> U2-Users mailing list
>> [email protected]
>> http://listserver.u2ug.org/mailman/listinfo/u2-users
>
> _______________________________________________
> U2-Users mailing list
> [email protected]
> http://listserver.u2ug.org/mailman/listinfo/u2-users
>
>
_______________________________________________
U2-Users mailing list
[email protected]
http://listserver.u2ug.org/mailman/listinfo/u2-users
_______________________________________________
U2-Users mailing list
[email protected]
http://listserver.u2ug.org/mailman/listinfo/u2-users

Reply via email to