You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ofbiz.apache.org by Jacek Wagner <ja...@berkeley.edu> on 2008/09/04 18:55:37 UTC

SOAP - ofbiz wrapper

The following is an ofbiz wrapper that performs three tasks: login, get 
description for a given product, create new product

When run from webtools (performs successfully all three tasks. when 
called as a soap performs successfully login & get descriptions for a 
given product. It also run thru create new product, but does not create 
new product neither throw any exception(s).

Wondering Jacek
  

public static Map createLHSProduct(DispatchContext dctx, Map context) {
        GenericDelegator delegator = dctx.getDelegator();

        try {
            String productId;
            String loginuser;
            String loginpassword;
            String productType;
            String productName;

            // get the input parameter

            productId = (String) context.get("productId");
            Debug.logInfo("productId = " + productId, module);      
            loginuser = (String) context.get("loginuser");
            Debug.logInfo("loginuser = " + loginuser, 
module);                    //prints to the console or console.log
            loginpassword = (String) context.get("loginpassword");
            Debug.logInfo("loginpassword = " + loginpassword, 
module);            //prints to the console or console.log
            productType = (String) context.get("productTypeId");
            Debug.logInfo("productTypeId = " + productType, 
module);      //prints to the console or console.log
            productName = (String) context.get("internalName");
            Debug.logInfo("internalName = " + productName, module);      
//prints to the console or console.log

// login
            context.put("login.username", loginuser);
            context.put("login.password", loginpassword);
            Map loginresult = LoginServices.userLogin(dctx, context);
            Debug.logInfo("loginresult = " + loginresult, module);      
//prints to the console or console.log

//get description for a given product
            Map queryResult = delegator.findByPrimaryKey("Product", 
UtilMisc.toMap("productId", productId));
            Map result = UtilMisc.toMap("description", productId);
            if (queryResult != null) {
                result.put("description", queryResult.get("description"));
            }

//create new product
            context.remove("productId");
            context.put("productTypeId", productType);
            context.put("internalName", productName);     
            Map productresult = SimpleMethod.runSimpleService(
                    "org/ofbiz/product/product/ProductServices.xml",
                    "createProduct", dctx, context);
 
            return result;

        } catch (GenericEntityException ex) {//required if you use 
delegator in Java
            return ServiceUtil.returnError(ex.getMessage());
        } catch (Exception ex) {//required if you use delegator in Java
            return ServiceUtil.returnError(ex.getMessage());
        }
    }


Re: Form Widget question

Posted by Jacques Le Roux <ja...@les7arts.com>.
Could you elaborate a bit more please ?
Which table are you talking about, an entity ?

For <text default-value=.../>  you can use the ${} syntax to have dynamic data filling in (and what is entry-name mechanizm ?)

Jacques

From: "Jacek Wagner" <ja...@berkeley.edu>
> All,
> 
> Is it possible to prepopulate a field with the table content and be able 
> to override it if necessary in the Form Widget?
> 
> Note that <text default-value=.../> cannot get data thru entry-name 
> mechanizm.
> 
> Jacek
>

Form Widget question

Posted by Jacek Wagner <ja...@berkeley.edu>.
All,

Is it possible to prepopulate a field with the table content and be able 
to override it if necessary in the Form Widget?

Note that <text default-value=.../> cannot get data thru entry-name 
mechanizm.

Jacek

Re: variables reset

Posted by Jacek Wagner <ja...@berkeley.edu>.
I buld an apps that has 15 screen widgets and a number of screen forms 
and ftls. In the third screen widget in the logic sequence, 
BirthdayPartyConfirmation  I <set field="partyId" 
from-field="parameters.partyId" to-scope="user"/>  see below screen

    <screen name="BirthdayPartyConfirmation">    
        <section>
            <actions>
                <set field="titleProperty" value="Birthday Party 
Confirmation"/>
                 <set field="partyId" from-field="parameters.partyId" 
to-scope="user"/>                
            </actions>
            <widgets>
                <decorator-screen name="main-decorator" 
location="component://registration/widget/CommonScreens.xml">
                    <decorator-section name="body">
                        <container><label 
style="head1">${uiLabelMap.${titleProperty}}</label></container>                                              

                        <include-form name="BirthdayPartyConfirmation" 
location="component://registration/webapp/registration/customer/RegistrationForms.xml"/>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>

The problem is to reset partyId to null at the very end. The only way I 
was able to do it was by creating the very last screen widget just  to 
reset partyId. I could not do it in java written service and bsh service 
either.

    <screen name="BirthdayPartyCompleted">    
        <section>
            <actions>
                <set field="titleProperty" value="Birthday Party 
Completed"/>       
                <set field="orderId" value="" 
to-scope="user"/>                                         
            </actions>
            <widgets>
                <decorator-screen name="main-decorator" 
location="component://registration/widget/CommonScreens.xml">
                    <decorator-section name="body">
                        <container><label 
style="head1">${uiLabelMap.${titleProperty}} 
</label></container>                                             
                        <include-form name="BirthdayPartyCompleted" 
location="component://registration/webapp/registration/customer/RegistrationForms.xml"/>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>


Adrian Crum wrote:
> We're going to need more information. Please provide some code 
> snippets or something.
>
> -Adrian
>
> Jacek Wagner wrote:
>> All,
>>
>> What would be the best way to reset variables in ofbiz.
>>
>> I wrote apps that helps selling LHS services. The key problem I am 
>> having is to reset some of the used variables to be sure  they do not 
>> affect the next sales cycle.
>>
>> Jacek
>>
>>


Re: variables reset

Posted by Adrian Crum <ad...@hlmksw.com>.
We're going to need more information. Please provide some code snippets 
or something.

-Adrian

Jacek Wagner wrote:
> All,
> 
> What would be the best way to reset variables in ofbiz.
> 
> I wrote apps that helps selling LHS services. The key problem I am 
> having is to reset some of the used variables to be sure  they do not 
> affect the next sales cycle.
> 
> Jacek
> 
> 

variables reset

Posted by Jacek Wagner <ja...@berkeley.edu>.
All,

What would be the best way to reset variables in ofbiz.

I wrote apps that helps selling LHS services. The key problem I am 
having is to reset some of the used variables to be sure  they do not 
affect the next sales cycle.

Jacek


Re: SOAP - ofbiz wrapper

Posted by Jacek Wagner <ja...@berkeley.edu>.
Thank you very much for your help. Yes I did

{responseMessage=success, 
userLogin=[GenericEntity:UserLogin][createdStamp,2008-07-14 
09:00:22.0(java.sql.Timestamp)][createdTxStamp,2008-07-14 
09:00:21.0(java.sql.Timestamp)][currentPassword,47ca69ebb4bdc9ae0adec130880165d2cc05db1a(java.lang.String)][disabledDateTime,null()][enabled,Y(java.lang.String)][hasLoggedOut,N(java.lang.String)][isSystem,null()][lastCurrencyUom,null()][lastLocale,null()][lastUpdatedStamp,2008-08-28 
12:20:41.0(java.sql.Timestamp)][lastUpdatedTxStamp,2008-08-28 
12:20:41.0(java.sql.Timestamp)][partyId,admin(java.lang.String)][passwordHint,null()][successiveFailedLogins,0(java.lang.Long)][userLoginId,admin(java.lang.String)]}

BJ Freeman wrote:
> did you check each return Map to check for a "success" message
>
> Jacek Wagner sent the following on 9/4/2008 3:01 PM:
>   
>> Thank you for the tip. The return map includes  error "You must be
>> logged in to complete the Create an Product process." I hoped that by
>> calling LoginServices.userLogin.....with admin/ofbiz (second task)  I am
>> receiving all credentials I need to complete the task.
>> Jacek
>>
>> BJ Freeman wrote:
>>     
>>> Simple services don't provide exceptions.
>>> They do return a Map that has error messages in it.
>>> https://demo.hotwaxmedia.com/webtools/control/availableServices?sel_service_name=createProduct
>>>
>>> take a look at the Out parameters
>>> Note this is for
>>> org/ofbiz/product/product/ProductServices.xml
>>> and uses a map and runsync
>>>
>>> Jacek Wagner sent the following on 9/4/2008 9:55 AM:
>>>  
>>>       
>>>> The following is an ofbiz wrapper that performs three tasks: login, get
>>>> description for a given product, create new product
>>>>
>>>> When run from webtools (performs successfully all three tasks. when
>>>> called as a soap performs successfully login & get descriptions for a
>>>> given product. It also run thru create new product, but does not create
>>>> new product neither throw any exception(s).
>>>>
>>>> Wondering Jacek
>>>>  
>>>>
>>>> public static Map createLHSProduct(DispatchContext dctx, Map context) {
>>>>        GenericDelegator delegator = dctx.getDelegator();
>>>>
>>>>        try {
>>>>            String productId;
>>>>            String loginuser;
>>>>            String loginpassword;
>>>>            String productType;
>>>>            String productName;
>>>>
>>>>            // get the input parameter
>>>>
>>>>            productId = (String) context.get("productId");
>>>>            Debug.logInfo("productId = " + productId, module);    
>>>>            loginuser = (String) context.get("loginuser");
>>>>            Debug.logInfo("loginuser = " + loginuser,
>>>> module);                    //prints to the console or console.log
>>>>            loginpassword = (String) context.get("loginpassword");
>>>>            Debug.logInfo("loginpassword = " + loginpassword,
>>>> module);            //prints to the console or console.log
>>>>            productType = (String) context.get("productTypeId");
>>>>            Debug.logInfo("productTypeId = " + productType,
>>>> module);     //prints to the console or console.log
>>>>            productName = (String) context.get("internalName");
>>>>            Debug.logInfo("internalName = " + productName,
>>>> module);     //prints to the console or console.log
>>>>
>>>> // login
>>>>            context.put("login.username", loginuser);
>>>>            context.put("login.password", loginpassword);
>>>>            Map loginresult = LoginServices.userLogin(dctx, context);
>>>>            Debug.logInfo("loginresult = " + loginresult, module);    
>>>> //prints to the console or console.log
>>>>
>>>> //get description for a given product
>>>>            Map queryResult = delegator.findByPrimaryKey("Product",
>>>> UtilMisc.toMap("productId", productId));
>>>>            Map result = UtilMisc.toMap("description", productId);
>>>>            if (queryResult != null) {
>>>>                result.put("description",
>>>> queryResult.get("description"));
>>>>            }
>>>>
>>>> //create new product
>>>>            context.remove("productId");
>>>>            context.put("productTypeId", productType);
>>>>            context.put("internalName", productName);                Map
>>>> productresult = SimpleMethod.runSimpleService(
>>>>                    "org/ofbiz/product/product/ProductServices.xml",
>>>>                    "createProduct", dctx, context);
>>>>
>>>>            return result;
>>>>
>>>>        } catch (GenericEntityException ex) {//required if you use
>>>> delegator in Java
>>>>            return ServiceUtil.returnError(ex.getMessage());
>>>>        } catch (Exception ex) {//required if you use delegator in Java
>>>>            return ServiceUtil.returnError(ex.getMessage());
>>>>        }
>>>>    }
>>>>
>>>>
>>>>
>>>>
>>>>     
>>>>         
>>>   
>>>       
>>
>>
>>     
>
>   


Re: SOAP - ofbiz wrapper

Posted by BJ Freeman <bj...@free-man.net>.
I believe you want someone to help you code you wrapper.
I hope you find someone to do that for you on the list.

Jacek Wagner sent the following on 9/5/2008 10:57 AM:
> It is my fault I did not communicate well enough what i wanted. Here is
> my final attempt.
> 
> This is what i want : add new product utilizing remote access via SOAP
> 
> This is what i have: ofbiz has service "createProduct" that requires
> auth="true"
> 
> This is what i know: ofbiz services are not Web_services
> 
> You suggested in previous exchange  to created a wrapper in ofbiz (ofbiz
> wrapper will call createProduct service ) that can be called using soap.
> 
> I created ofbiz wrapper and when i test thru the webtools (used login
> admin/ofbiz) it let me add new product, but when i call from the remote
> client i am getting a message that i have to login to complete transaction.
> The question is how to login within ofbiz wrapper before calling
> createProduct implementation.
> 
> Below the code that logins successfully, but does not pass credentials
> to the service
> 
> public static Map createLHSProduct(DispatchContext dctx, Map context) {
>       GenericDelegator delegator = dctx.getDelegator();
> 
>  try {
>     String loginuser;
>     String loginpassword;
>     String productType;
>     String productName;
> 
>   // get the input parameter
> 
>   loginuser = (String) context.get("loginuser");
>   Debug.logInfo("loginuser = " + loginuser, module);    loginpassword =
> (String) context.get("loginpassword");
>   Debug.logInfo("loginpassword = " + loginpassword,module);    
> productType = (String) context.get("productTypeId");
>   Debug.logInfo("productTypeId = " + productType,module);    productName
> = (String) context.get("internalName");
>   Debug.logInfo("internalName = " + productName,module);
> // login
>     context.put("login.username", loginuser);
>     context.put("login.password", loginpassword);
>     Map loginresult = LoginServices.userLogin(dctx, context);
>     Debug.logInfo("loginresult = " + loginresult,module);
> //create new product
>      context.put("productTypeId", productType);
>      context.put("internalName", productName);                Map
> productresult = SimpleMethod.runSimpleService(
>                   "org/ofbiz/product/product/ProductServices.xml",
>                   "createProduct", dctx, context);
> 
>   return result;
> 
>  } catch (GenericEntityException ex) {
>         return ServiceUtil.returnError(ex.getMessage());
>   } catch (Exception ex) {
>      return ServiceUtil.returnError(ex.getMessage());
>       }
>   }
> 
> 
> 
> BJ Freeman wrote:
>> there is code already that you can follow the flow.
>> it save me having to explain what is already used.
>> you can follow the flow of that code to write you wrapper.
>>
>> for instance you are trying to deal with a product.
>> so if you follow the code flow that creates a product in ofbiz
>> you will have a template on how to do this in your wrapper.
>>
>>
>> Jacek Wagner sent the following on 9/4/2008 5:41 PM:
>>  
>>> I  am not sure I follow. All what I want from this ofbiz wrapper to
>>> obtain credential in order to complete adding new  product.
>>> This ofbiz wrapper is being called thru soap and has to be able to login
>>> and process new product.
>>>
>>> BJ Freeman wrote:
>>>    
>>>> I am assuming that you have read code that already does this operations
>>>> to pick up what you not doing.
>>>>
>>>>
>>>> BJ Freeman sent the following on 9/4/2008 5:05 PM:
>>>>  
>>>>      
>>>>> did you check each return Map to check for a "success" message
>>>>>
>>>>> Jacek Wagner sent the following on 9/4/2008 3:01 PM:
>>>>>           
>>>>>> Thank you for the tip. The return map includes  error "You must be
>>>>>> logged in to complete the Create an Product process." I hoped that by
>>>>>> calling LoginServices.userLogin.....with admin/ofbiz (second task)
>>>>>> I am
>>>>>> receiving all credentials I need to complete the task.
>>>>>> Jacek
>>>>>>
>>>>>> BJ Freeman wrote:
>>>>>>               
>>>>>>> Simple services don't provide exceptions.
>>>>>>> They do return a Map that has error messages in it.
>>>>>>> https://demo.hotwaxmedia.com/webtools/control/availableServices?sel_service_name=createProduct
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> take a look at the Out parameters
>>>>>>> Note this is for
>>>>>>> org/ofbiz/product/product/ProductServices.xml
>>>>>>> and uses a map and runsync
>>>>>>>
>>>>>>> Jacek Wagner sent the following on 9/4/2008 9:55 AM:
>>>>>>>  
>>>>>>>                   
>>>>>>>> The following is an ofbiz wrapper that performs three tasks:
>>>>>>>> login, get
>>>>>>>> description for a given product, create new product
>>>>>>>>
>>>>>>>> When run from webtools (performs successfully all three tasks. when
>>>>>>>> called as a soap performs successfully login & get descriptions
>>>>>>>> for a
>>>>>>>> given product. It also run thru create new product, but does not
>>>>>>>> create
>>>>>>>> new product neither throw any exception(s).
>>>>>>>>
>>>>>>>> Wondering Jacek
>>>>>>>>  
>>>>>>>>
>>>>>>>> public static Map createLHSProduct(DispatchContext dctx, Map
>>>>>>>> context) {
>>>>>>>>        GenericDelegator delegator = dctx.getDelegator();
>>>>>>>>
>>>>>>>>        try {
>>>>>>>>            String productId;
>>>>>>>>            String loginuser;
>>>>>>>>            String loginpassword;
>>>>>>>>            String productType;
>>>>>>>>            String productName;
>>>>>>>>
>>>>>>>>            // get the input parameter
>>>>>>>>
>>>>>>>>            productId = (String) context.get("productId");
>>>>>>>>            Debug.logInfo("productId = " + productId, module);  
>>>>>>>>            loginuser = (String) context.get("loginuser");
>>>>>>>>            Debug.logInfo("loginuser = " + loginuser,
>>>>>>>> module);                    //prints to the console or console.log
>>>>>>>>            loginpassword = (String) context.get("loginpassword");
>>>>>>>>            Debug.logInfo("loginpassword = " + loginpassword,
>>>>>>>> module);            //prints to the console or console.log
>>>>>>>>            productType = (String) context.get("productTypeId");
>>>>>>>>            Debug.logInfo("productTypeId = " + productType,
>>>>>>>> module);     //prints to the console or console.log
>>>>>>>>            productName = (String) context.get("internalName");
>>>>>>>>            Debug.logInfo("internalName = " + productName,
>>>>>>>> module);     //prints to the console or console.log
>>>>>>>>
>>>>>>>> // login
>>>>>>>>            context.put("login.username", loginuser);
>>>>>>>>            context.put("login.password", loginpassword);
>>>>>>>>            Map loginresult = LoginServices.userLogin(dctx,
>>>>>>>> context);
>>>>>>>>            Debug.logInfo("loginresult = " + loginresult,
>>>>>>>> module);    //prints to the console or console.log
>>>>>>>>
>>>>>>>> //get description for a given product
>>>>>>>>            Map queryResult = delegator.findByPrimaryKey("Product",
>>>>>>>> UtilMisc.toMap("productId", productId));
>>>>>>>>            Map result = UtilMisc.toMap("description", productId);
>>>>>>>>            if (queryResult != null) {
>>>>>>>>                result.put("description",
>>>>>>>> queryResult.get("description"));
>>>>>>>>            }
>>>>>>>>
>>>>>>>> //create new product
>>>>>>>>            context.remove("productId");
>>>>>>>>            context.put("productTypeId", productType);
>>>>>>>>            context.put("internalName",
>>>>>>>> productName);                Map
>>>>>>>> productresult = SimpleMethod.runSimpleService(
>>>>>>>>                    "org/ofbiz/product/product/ProductServices.xml",
>>>>>>>>                    "createProduct", dctx, context);
>>>>>>>>
>>>>>>>>            return result;
>>>>>>>>
>>>>>>>>        } catch (GenericEntityException ex) {//required if you use
>>>>>>>> delegator in Java
>>>>>>>>            return ServiceUtil.returnError(ex.getMessage());
>>>>>>>>        } catch (Exception ex) {//required if you use delegator in
>>>>>>>> Java
>>>>>>>>            return ServiceUtil.returnError(ex.getMessage());
>>>>>>>>        }
>>>>>>>>    }
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                             
>>>>>>>                       
>>>>>>                 
>>>>>             
>>>>         
>>>
>>>
>>>     
>>
>>   
> 
> 
> 
> 


Re: SOAP - ofbiz wrapper

Posted by BJ Freeman <bj...@free-man.net>.
oops replied to wrong  eamil.

BJ Freeman sent the following on 9/5/2008 11:57 AM:
> there is supporting code for the xml that also has to be introduced.
> not sure it will work in 4.0.
> if you want Trunk features it is best to use the Trunk.
> 
> 
> Jacek Wagner sent the following on 9/5/2008 10:57 AM:
>> It is my fault I did not communicate well enough what i wanted. Here is
>> my final attempt.
>>
>> This is what i want : add new product utilizing remote access via SOAP
>>
>> This is what i have: ofbiz has service "createProduct" that requires
>> auth="true"
>>
>> This is what i know: ofbiz services are not Web_services
>>
>> You suggested in previous exchange  to created a wrapper in ofbiz (ofbiz
>> wrapper will call createProduct service ) that can be called using soap.
>>
>> I created ofbiz wrapper and when i test thru the webtools (used login
>> admin/ofbiz) it let me add new product, but when i call from the remote
>> client i am getting a message that i have to login to complete transaction.
>> The question is how to login within ofbiz wrapper before calling
>> createProduct implementation.
>>
>> Below the code that logins successfully, but does not pass credentials
>> to the service
>>
>> public static Map createLHSProduct(DispatchContext dctx, Map context) {
>>       GenericDelegator delegator = dctx.getDelegator();
>>
>>  try {
>>     String loginuser;
>>     String loginpassword;
>>     String productType;
>>     String productName;
>>
>>   // get the input parameter
>>
>>   loginuser = (String) context.get("loginuser");
>>   Debug.logInfo("loginuser = " + loginuser, module);    loginpassword =
>> (String) context.get("loginpassword");
>>   Debug.logInfo("loginpassword = " + loginpassword,module);    
>> productType = (String) context.get("productTypeId");
>>   Debug.logInfo("productTypeId = " + productType,module);    productName
>> = (String) context.get("internalName");
>>   Debug.logInfo("internalName = " + productName,module);
>> // login
>>     context.put("login.username", loginuser);
>>     context.put("login.password", loginpassword);
>>     Map loginresult = LoginServices.userLogin(dctx, context);
>>     Debug.logInfo("loginresult = " + loginresult,module);
>> //create new product
>>      context.put("productTypeId", productType);
>>      context.put("internalName", productName);                Map
>> productresult = SimpleMethod.runSimpleService(
>>                   "org/ofbiz/product/product/ProductServices.xml",
>>                   "createProduct", dctx, context);
>>
>>   return result;
>>
>>  } catch (GenericEntityException ex) {
>>         return ServiceUtil.returnError(ex.getMessage());
>>   } catch (Exception ex) {
>>      return ServiceUtil.returnError(ex.getMessage());
>>       }
>>   }
>>
>>
>>
>> BJ Freeman wrote:
>>> there is code already that you can follow the flow.
>>> it save me having to explain what is already used.
>>> you can follow the flow of that code to write you wrapper.
>>>
>>> for instance you are trying to deal with a product.
>>> so if you follow the code flow that creates a product in ofbiz
>>> you will have a template on how to do this in your wrapper.
>>>
>>>
>>> Jacek Wagner sent the following on 9/4/2008 5:41 PM:
>>>  
>>>> I  am not sure I follow. All what I want from this ofbiz wrapper to
>>>> obtain credential in order to complete adding new  product.
>>>> This ofbiz wrapper is being called thru soap and has to be able to login
>>>> and process new product.
>>>>
>>>> BJ Freeman wrote:
>>>>    
>>>>> I am assuming that you have read code that already does this operations
>>>>> to pick up what you not doing.
>>>>>
>>>>>
>>>>> BJ Freeman sent the following on 9/4/2008 5:05 PM:
>>>>>  
>>>>>      
>>>>>> did you check each return Map to check for a "success" message
>>>>>>
>>>>>> Jacek Wagner sent the following on 9/4/2008 3:01 PM:
>>>>>>           
>>>>>>> Thank you for the tip. The return map includes  error "You must be
>>>>>>> logged in to complete the Create an Product process." I hoped that by
>>>>>>> calling LoginServices.userLogin.....with admin/ofbiz (second task)
>>>>>>> I am
>>>>>>> receiving all credentials I need to complete the task.
>>>>>>> Jacek
>>>>>>>
>>>>>>> BJ Freeman wrote:
>>>>>>>               
>>>>>>>> Simple services don't provide exceptions.
>>>>>>>> They do return a Map that has error messages in it.
>>>>>>>> https://demo.hotwaxmedia.com/webtools/control/availableServices?sel_service_name=createProduct
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> take a look at the Out parameters
>>>>>>>> Note this is for
>>>>>>>> org/ofbiz/product/product/ProductServices.xml
>>>>>>>> and uses a map and runsync
>>>>>>>>
>>>>>>>> Jacek Wagner sent the following on 9/4/2008 9:55 AM:
>>>>>>>>  
>>>>>>>>                   
>>>>>>>>> The following is an ofbiz wrapper that performs three tasks:
>>>>>>>>> login, get
>>>>>>>>> description for a given product, create new product
>>>>>>>>>
>>>>>>>>> When run from webtools (performs successfully all three tasks. when
>>>>>>>>> called as a soap performs successfully login & get descriptions
>>>>>>>>> for a
>>>>>>>>> given product. It also run thru create new product, but does not
>>>>>>>>> create
>>>>>>>>> new product neither throw any exception(s).
>>>>>>>>>
>>>>>>>>> Wondering Jacek
>>>>>>>>>  
>>>>>>>>>
>>>>>>>>> public static Map createLHSProduct(DispatchContext dctx, Map
>>>>>>>>> context) {
>>>>>>>>>        GenericDelegator delegator = dctx.getDelegator();
>>>>>>>>>
>>>>>>>>>        try {
>>>>>>>>>            String productId;
>>>>>>>>>            String loginuser;
>>>>>>>>>            String loginpassword;
>>>>>>>>>            String productType;
>>>>>>>>>            String productName;
>>>>>>>>>
>>>>>>>>>            // get the input parameter
>>>>>>>>>
>>>>>>>>>            productId = (String) context.get("productId");
>>>>>>>>>            Debug.logInfo("productId = " + productId, module);  
>>>>>>>>>            loginuser = (String) context.get("loginuser");
>>>>>>>>>            Debug.logInfo("loginuser = " + loginuser,
>>>>>>>>> module);                    //prints to the console or console.log
>>>>>>>>>            loginpassword = (String) context.get("loginpassword");
>>>>>>>>>            Debug.logInfo("loginpassword = " + loginpassword,
>>>>>>>>> module);            //prints to the console or console.log
>>>>>>>>>            productType = (String) context.get("productTypeId");
>>>>>>>>>            Debug.logInfo("productTypeId = " + productType,
>>>>>>>>> module);     //prints to the console or console.log
>>>>>>>>>            productName = (String) context.get("internalName");
>>>>>>>>>            Debug.logInfo("internalName = " + productName,
>>>>>>>>> module);     //prints to the console or console.log
>>>>>>>>>
>>>>>>>>> // login
>>>>>>>>>            context.put("login.username", loginuser);
>>>>>>>>>            context.put("login.password", loginpassword);
>>>>>>>>>            Map loginresult = LoginServices.userLogin(dctx,
>>>>>>>>> context);
>>>>>>>>>            Debug.logInfo("loginresult = " + loginresult,
>>>>>>>>> module);    //prints to the console or console.log
>>>>>>>>>
>>>>>>>>> //get description for a given product
>>>>>>>>>            Map queryResult = delegator.findByPrimaryKey("Product",
>>>>>>>>> UtilMisc.toMap("productId", productId));
>>>>>>>>>            Map result = UtilMisc.toMap("description", productId);
>>>>>>>>>            if (queryResult != null) {
>>>>>>>>>                result.put("description",
>>>>>>>>> queryResult.get("description"));
>>>>>>>>>            }
>>>>>>>>>
>>>>>>>>> //create new product
>>>>>>>>>            context.remove("productId");
>>>>>>>>>            context.put("productTypeId", productType);
>>>>>>>>>            context.put("internalName",
>>>>>>>>> productName);                Map
>>>>>>>>> productresult = SimpleMethod.runSimpleService(
>>>>>>>>>                    "org/ofbiz/product/product/ProductServices.xml",
>>>>>>>>>                    "createProduct", dctx, context);
>>>>>>>>>
>>>>>>>>>            return result;
>>>>>>>>>
>>>>>>>>>        } catch (GenericEntityException ex) {//required if you use
>>>>>>>>> delegator in Java
>>>>>>>>>            return ServiceUtil.returnError(ex.getMessage());
>>>>>>>>>        } catch (Exception ex) {//required if you use delegator in
>>>>>>>>> Java
>>>>>>>>>            return ServiceUtil.returnError(ex.getMessage());
>>>>>>>>>        }
>>>>>>>>>    }
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>                             
>>>>>>>>                       
>>>>>>>                 
>>>>>>             
>>>>>         
>>>>
>>>>     
>>>   
>>
>>
>>
> 
> 
> 
> 


Re: SOAP - ofbiz wrapper

Posted by BJ Freeman <bj...@free-man.net>.
there is supporting code for the xml that also has to be introduced.
not sure it will work in 4.0.
if you want Trunk features it is best to use the Trunk.


Jacek Wagner sent the following on 9/5/2008 10:57 AM:
> It is my fault I did not communicate well enough what i wanted. Here is
> my final attempt.
> 
> This is what i want : add new product utilizing remote access via SOAP
> 
> This is what i have: ofbiz has service "createProduct" that requires
> auth="true"
> 
> This is what i know: ofbiz services are not Web_services
> 
> You suggested in previous exchange  to created a wrapper in ofbiz (ofbiz
> wrapper will call createProduct service ) that can be called using soap.
> 
> I created ofbiz wrapper and when i test thru the webtools (used login
> admin/ofbiz) it let me add new product, but when i call from the remote
> client i am getting a message that i have to login to complete transaction.
> The question is how to login within ofbiz wrapper before calling
> createProduct implementation.
> 
> Below the code that logins successfully, but does not pass credentials
> to the service
> 
> public static Map createLHSProduct(DispatchContext dctx, Map context) {
>       GenericDelegator delegator = dctx.getDelegator();
> 
>  try {
>     String loginuser;
>     String loginpassword;
>     String productType;
>     String productName;
> 
>   // get the input parameter
> 
>   loginuser = (String) context.get("loginuser");
>   Debug.logInfo("loginuser = " + loginuser, module);    loginpassword =
> (String) context.get("loginpassword");
>   Debug.logInfo("loginpassword = " + loginpassword,module);    
> productType = (String) context.get("productTypeId");
>   Debug.logInfo("productTypeId = " + productType,module);    productName
> = (String) context.get("internalName");
>   Debug.logInfo("internalName = " + productName,module);
> // login
>     context.put("login.username", loginuser);
>     context.put("login.password", loginpassword);
>     Map loginresult = LoginServices.userLogin(dctx, context);
>     Debug.logInfo("loginresult = " + loginresult,module);
> //create new product
>      context.put("productTypeId", productType);
>      context.put("internalName", productName);                Map
> productresult = SimpleMethod.runSimpleService(
>                   "org/ofbiz/product/product/ProductServices.xml",
>                   "createProduct", dctx, context);
> 
>   return result;
> 
>  } catch (GenericEntityException ex) {
>         return ServiceUtil.returnError(ex.getMessage());
>   } catch (Exception ex) {
>      return ServiceUtil.returnError(ex.getMessage());
>       }
>   }
> 
> 
> 
> BJ Freeman wrote:
>> there is code already that you can follow the flow.
>> it save me having to explain what is already used.
>> you can follow the flow of that code to write you wrapper.
>>
>> for instance you are trying to deal with a product.
>> so if you follow the code flow that creates a product in ofbiz
>> you will have a template on how to do this in your wrapper.
>>
>>
>> Jacek Wagner sent the following on 9/4/2008 5:41 PM:
>>  
>>> I  am not sure I follow. All what I want from this ofbiz wrapper to
>>> obtain credential in order to complete adding new  product.
>>> This ofbiz wrapper is being called thru soap and has to be able to login
>>> and process new product.
>>>
>>> BJ Freeman wrote:
>>>    
>>>> I am assuming that you have read code that already does this operations
>>>> to pick up what you not doing.
>>>>
>>>>
>>>> BJ Freeman sent the following on 9/4/2008 5:05 PM:
>>>>  
>>>>      
>>>>> did you check each return Map to check for a "success" message
>>>>>
>>>>> Jacek Wagner sent the following on 9/4/2008 3:01 PM:
>>>>>           
>>>>>> Thank you for the tip. The return map includes  error "You must be
>>>>>> logged in to complete the Create an Product process." I hoped that by
>>>>>> calling LoginServices.userLogin.....with admin/ofbiz (second task)
>>>>>> I am
>>>>>> receiving all credentials I need to complete the task.
>>>>>> Jacek
>>>>>>
>>>>>> BJ Freeman wrote:
>>>>>>               
>>>>>>> Simple services don't provide exceptions.
>>>>>>> They do return a Map that has error messages in it.
>>>>>>> https://demo.hotwaxmedia.com/webtools/control/availableServices?sel_service_name=createProduct
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> take a look at the Out parameters
>>>>>>> Note this is for
>>>>>>> org/ofbiz/product/product/ProductServices.xml
>>>>>>> and uses a map and runsync
>>>>>>>
>>>>>>> Jacek Wagner sent the following on 9/4/2008 9:55 AM:
>>>>>>>  
>>>>>>>                   
>>>>>>>> The following is an ofbiz wrapper that performs three tasks:
>>>>>>>> login, get
>>>>>>>> description for a given product, create new product
>>>>>>>>
>>>>>>>> When run from webtools (performs successfully all three tasks. when
>>>>>>>> called as a soap performs successfully login & get descriptions
>>>>>>>> for a
>>>>>>>> given product. It also run thru create new product, but does not
>>>>>>>> create
>>>>>>>> new product neither throw any exception(s).
>>>>>>>>
>>>>>>>> Wondering Jacek
>>>>>>>>  
>>>>>>>>
>>>>>>>> public static Map createLHSProduct(DispatchContext dctx, Map
>>>>>>>> context) {
>>>>>>>>        GenericDelegator delegator = dctx.getDelegator();
>>>>>>>>
>>>>>>>>        try {
>>>>>>>>            String productId;
>>>>>>>>            String loginuser;
>>>>>>>>            String loginpassword;
>>>>>>>>            String productType;
>>>>>>>>            String productName;
>>>>>>>>
>>>>>>>>            // get the input parameter
>>>>>>>>
>>>>>>>>            productId = (String) context.get("productId");
>>>>>>>>            Debug.logInfo("productId = " + productId, module);  
>>>>>>>>            loginuser = (String) context.get("loginuser");
>>>>>>>>            Debug.logInfo("loginuser = " + loginuser,
>>>>>>>> module);                    //prints to the console or console.log
>>>>>>>>            loginpassword = (String) context.get("loginpassword");
>>>>>>>>            Debug.logInfo("loginpassword = " + loginpassword,
>>>>>>>> module);            //prints to the console or console.log
>>>>>>>>            productType = (String) context.get("productTypeId");
>>>>>>>>            Debug.logInfo("productTypeId = " + productType,
>>>>>>>> module);     //prints to the console or console.log
>>>>>>>>            productName = (String) context.get("internalName");
>>>>>>>>            Debug.logInfo("internalName = " + productName,
>>>>>>>> module);     //prints to the console or console.log
>>>>>>>>
>>>>>>>> // login
>>>>>>>>            context.put("login.username", loginuser);
>>>>>>>>            context.put("login.password", loginpassword);
>>>>>>>>            Map loginresult = LoginServices.userLogin(dctx,
>>>>>>>> context);
>>>>>>>>            Debug.logInfo("loginresult = " + loginresult,
>>>>>>>> module);    //prints to the console or console.log
>>>>>>>>
>>>>>>>> //get description for a given product
>>>>>>>>            Map queryResult = delegator.findByPrimaryKey("Product",
>>>>>>>> UtilMisc.toMap("productId", productId));
>>>>>>>>            Map result = UtilMisc.toMap("description", productId);
>>>>>>>>            if (queryResult != null) {
>>>>>>>>                result.put("description",
>>>>>>>> queryResult.get("description"));
>>>>>>>>            }
>>>>>>>>
>>>>>>>> //create new product
>>>>>>>>            context.remove("productId");
>>>>>>>>            context.put("productTypeId", productType);
>>>>>>>>            context.put("internalName",
>>>>>>>> productName);                Map
>>>>>>>> productresult = SimpleMethod.runSimpleService(
>>>>>>>>                    "org/ofbiz/product/product/ProductServices.xml",
>>>>>>>>                    "createProduct", dctx, context);
>>>>>>>>
>>>>>>>>            return result;
>>>>>>>>
>>>>>>>>        } catch (GenericEntityException ex) {//required if you use
>>>>>>>> delegator in Java
>>>>>>>>            return ServiceUtil.returnError(ex.getMessage());
>>>>>>>>        } catch (Exception ex) {//required if you use delegator in
>>>>>>>> Java
>>>>>>>>            return ServiceUtil.returnError(ex.getMessage());
>>>>>>>>        }
>>>>>>>>    }
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                             
>>>>>>>                       
>>>>>>                 
>>>>>             
>>>>         
>>>
>>>
>>>     
>>
>>   
> 
> 
> 
> 


Re: SOAP - ofbiz wrapper

Posted by Jacek Wagner <ja...@berkeley.edu>.
It is my fault I did not communicate well enough what i wanted. Here is 
my final attempt.

This is what i want : add new product utilizing remote access via SOAP

This is what i have: ofbiz has service "createProduct" that requires 
auth="true"

This is what i know: ofbiz services are not Web_services

You suggested in previous exchange  to created a wrapper in ofbiz (ofbiz 
wrapper will call createProduct service ) that can be called using soap.

I created ofbiz wrapper and when i test thru the webtools (used login 
admin/ofbiz) it let me add new product, but when i call from the remote 
client i am getting a message that i have to login to complete transaction.
The question is how to login within ofbiz wrapper before calling 
createProduct implementation.
 
Below the code that logins successfully, but does not pass credentials 
to the service

public static Map createLHSProduct(DispatchContext dctx, Map context) {
       GenericDelegator delegator = dctx.getDelegator();

  try {
     String loginuser;
     String loginpassword;
     String productType;
     String productName;

   // get the input parameter

   loginuser = (String) context.get("loginuser");
   Debug.logInfo("loginuser = " + loginuser, module);  
   loginpassword = (String) context.get("loginpassword");
   Debug.logInfo("loginpassword = " + loginpassword,module);   
   productType = (String) context.get("productTypeId");
   Debug.logInfo("productTypeId = " + productType,module);  
   productName = (String) context.get("internalName");
   Debug.logInfo("internalName = " + productName,module); 

// login
     context.put("login.username", loginuser);
     context.put("login.password", loginpassword);
     Map loginresult = LoginServices.userLogin(dctx, context);
     Debug.logInfo("loginresult = " + loginresult,module); 

//create new product
      context.put("productTypeId", productType);
      context.put("internalName", productName);                
Map productresult = SimpleMethod.runSimpleService(
                   "org/ofbiz/product/product/ProductServices.xml",
                   "createProduct", dctx, context);

   return result;

  } catch (GenericEntityException ex) {
         return ServiceUtil.returnError(ex.getMessage());
   } catch (Exception ex) {
	 return ServiceUtil.returnError(ex.getMessage());
       }
   }



BJ Freeman wrote:
> there is code already that you can follow the flow.
> it save me having to explain what is already used.
> you can follow the flow of that code to write you wrapper.
>
> for instance you are trying to deal with a product.
> so if you follow the code flow that creates a product in ofbiz
> you will have a template on how to do this in your wrapper.
>
>
> Jacek Wagner sent the following on 9/4/2008 5:41 PM:
>   
>> I  am not sure I follow. All what I want from this ofbiz wrapper to
>> obtain credential in order to complete adding new  product.
>> This ofbiz wrapper is being called thru soap and has to be able to login
>> and process new product.
>>
>> BJ Freeman wrote:
>>     
>>> I am assuming that you have read code that already does this operations
>>> to pick up what you not doing.
>>>
>>>
>>> BJ Freeman sent the following on 9/4/2008 5:05 PM:
>>>  
>>>       
>>>> did you check each return Map to check for a "success" message
>>>>
>>>> Jacek Wagner sent the following on 9/4/2008 3:01 PM:
>>>>    
>>>>         
>>>>> Thank you for the tip. The return map includes  error "You must be
>>>>> logged in to complete the Create an Product process." I hoped that by
>>>>> calling LoginServices.userLogin.....with admin/ofbiz (second task) 
>>>>> I am
>>>>> receiving all credentials I need to complete the task.
>>>>> Jacek
>>>>>
>>>>> BJ Freeman wrote:
>>>>>      
>>>>>           
>>>>>> Simple services don't provide exceptions.
>>>>>> They do return a Map that has error messages in it.
>>>>>> https://demo.hotwaxmedia.com/webtools/control/availableServices?sel_service_name=createProduct
>>>>>>
>>>>>>
>>>>>> take a look at the Out parameters
>>>>>> Note this is for
>>>>>> org/ofbiz/product/product/ProductServices.xml
>>>>>> and uses a map and runsync
>>>>>>
>>>>>> Jacek Wagner sent the following on 9/4/2008 9:55 AM:
>>>>>>  
>>>>>>        
>>>>>>             
>>>>>>> The following is an ofbiz wrapper that performs three tasks:
>>>>>>> login, get
>>>>>>> description for a given product, create new product
>>>>>>>
>>>>>>> When run from webtools (performs successfully all three tasks. when
>>>>>>> called as a soap performs successfully login & get descriptions for a
>>>>>>> given product. It also run thru create new product, but does not
>>>>>>> create
>>>>>>> new product neither throw any exception(s).
>>>>>>>
>>>>>>> Wondering Jacek
>>>>>>>  
>>>>>>>
>>>>>>> public static Map createLHSProduct(DispatchContext dctx, Map
>>>>>>> context) {
>>>>>>>        GenericDelegator delegator = dctx.getDelegator();
>>>>>>>
>>>>>>>        try {
>>>>>>>            String productId;
>>>>>>>            String loginuser;
>>>>>>>            String loginpassword;
>>>>>>>            String productType;
>>>>>>>            String productName;
>>>>>>>
>>>>>>>            // get the input parameter
>>>>>>>
>>>>>>>            productId = (String) context.get("productId");
>>>>>>>            Debug.logInfo("productId = " + productId, module);   
>>>>>>>            loginuser = (String) context.get("loginuser");
>>>>>>>            Debug.logInfo("loginuser = " + loginuser,
>>>>>>> module);                    //prints to the console or console.log
>>>>>>>            loginpassword = (String) context.get("loginpassword");
>>>>>>>            Debug.logInfo("loginpassword = " + loginpassword,
>>>>>>> module);            //prints to the console or console.log
>>>>>>>            productType = (String) context.get("productTypeId");
>>>>>>>            Debug.logInfo("productTypeId = " + productType,
>>>>>>> module);     //prints to the console or console.log
>>>>>>>            productName = (String) context.get("internalName");
>>>>>>>            Debug.logInfo("internalName = " + productName,
>>>>>>> module);     //prints to the console or console.log
>>>>>>>
>>>>>>> // login
>>>>>>>            context.put("login.username", loginuser);
>>>>>>>            context.put("login.password", loginpassword);
>>>>>>>            Map loginresult = LoginServices.userLogin(dctx, context);
>>>>>>>            Debug.logInfo("loginresult = " + loginresult,
>>>>>>> module);    //prints to the console or console.log
>>>>>>>
>>>>>>> //get description for a given product
>>>>>>>            Map queryResult = delegator.findByPrimaryKey("Product",
>>>>>>> UtilMisc.toMap("productId", productId));
>>>>>>>            Map result = UtilMisc.toMap("description", productId);
>>>>>>>            if (queryResult != null) {
>>>>>>>                result.put("description",
>>>>>>> queryResult.get("description"));
>>>>>>>            }
>>>>>>>
>>>>>>> //create new product
>>>>>>>            context.remove("productId");
>>>>>>>            context.put("productTypeId", productType);
>>>>>>>            context.put("internalName",
>>>>>>> productName);                Map
>>>>>>> productresult = SimpleMethod.runSimpleService(
>>>>>>>                    "org/ofbiz/product/product/ProductServices.xml",
>>>>>>>                    "createProduct", dctx, context);
>>>>>>>
>>>>>>>            return result;
>>>>>>>
>>>>>>>        } catch (GenericEntityException ex) {//required if you use
>>>>>>> delegator in Java
>>>>>>>            return ServiceUtil.returnError(ex.getMessage());
>>>>>>>        } catch (Exception ex) {//required if you use delegator in
>>>>>>> Java
>>>>>>>            return ServiceUtil.returnError(ex.getMessage());
>>>>>>>        }
>>>>>>>    }
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>>>               
>>>>>>           
>>>>>>             
>>>>>       
>>>>>           
>>>>     
>>>>         
>>>   
>>>       
>>
>>
>>     
>
>   


Re: SOAP - ofbiz wrapper

Posted by BJ Freeman <bj...@free-man.net>.
there is code already that you can follow the flow.
it save me having to explain what is already used.
you can follow the flow of that code to write you wrapper.

for instance you are trying to deal with a product.
so if you follow the code flow that creates a product in ofbiz
you will have a template on how to do this in your wrapper.


Jacek Wagner sent the following on 9/4/2008 5:41 PM:
> I  am not sure I follow. All what I want from this ofbiz wrapper to
> obtain credential in order to complete adding new  product.
> This ofbiz wrapper is being called thru soap and has to be able to login
> and process new product.
> 
> BJ Freeman wrote:
>> I am assuming that you have read code that already does this operations
>> to pick up what you not doing.
>>
>>
>> BJ Freeman sent the following on 9/4/2008 5:05 PM:
>>  
>>> did you check each return Map to check for a "success" message
>>>
>>> Jacek Wagner sent the following on 9/4/2008 3:01 PM:
>>>    
>>>> Thank you for the tip. The return map includes  error "You must be
>>>> logged in to complete the Create an Product process." I hoped that by
>>>> calling LoginServices.userLogin.....with admin/ofbiz (second task) 
>>>> I am
>>>> receiving all credentials I need to complete the task.
>>>> Jacek
>>>>
>>>> BJ Freeman wrote:
>>>>      
>>>>> Simple services don't provide exceptions.
>>>>> They do return a Map that has error messages in it.
>>>>> https://demo.hotwaxmedia.com/webtools/control/availableServices?sel_service_name=createProduct
>>>>>
>>>>>
>>>>> take a look at the Out parameters
>>>>> Note this is for
>>>>> org/ofbiz/product/product/ProductServices.xml
>>>>> and uses a map and runsync
>>>>>
>>>>> Jacek Wagner sent the following on 9/4/2008 9:55 AM:
>>>>>  
>>>>>        
>>>>>> The following is an ofbiz wrapper that performs three tasks:
>>>>>> login, get
>>>>>> description for a given product, create new product
>>>>>>
>>>>>> When run from webtools (performs successfully all three tasks. when
>>>>>> called as a soap performs successfully login & get descriptions for a
>>>>>> given product. It also run thru create new product, but does not
>>>>>> create
>>>>>> new product neither throw any exception(s).
>>>>>>
>>>>>> Wondering Jacek
>>>>>>  
>>>>>>
>>>>>> public static Map createLHSProduct(DispatchContext dctx, Map
>>>>>> context) {
>>>>>>        GenericDelegator delegator = dctx.getDelegator();
>>>>>>
>>>>>>        try {
>>>>>>            String productId;
>>>>>>            String loginuser;
>>>>>>            String loginpassword;
>>>>>>            String productType;
>>>>>>            String productName;
>>>>>>
>>>>>>            // get the input parameter
>>>>>>
>>>>>>            productId = (String) context.get("productId");
>>>>>>            Debug.logInfo("productId = " + productId, module);   
>>>>>>            loginuser = (String) context.get("loginuser");
>>>>>>            Debug.logInfo("loginuser = " + loginuser,
>>>>>> module);                    //prints to the console or console.log
>>>>>>            loginpassword = (String) context.get("loginpassword");
>>>>>>            Debug.logInfo("loginpassword = " + loginpassword,
>>>>>> module);            //prints to the console or console.log
>>>>>>            productType = (String) context.get("productTypeId");
>>>>>>            Debug.logInfo("productTypeId = " + productType,
>>>>>> module);     //prints to the console or console.log
>>>>>>            productName = (String) context.get("internalName");
>>>>>>            Debug.logInfo("internalName = " + productName,
>>>>>> module);     //prints to the console or console.log
>>>>>>
>>>>>> // login
>>>>>>            context.put("login.username", loginuser);
>>>>>>            context.put("login.password", loginpassword);
>>>>>>            Map loginresult = LoginServices.userLogin(dctx, context);
>>>>>>            Debug.logInfo("loginresult = " + loginresult,
>>>>>> module);    //prints to the console or console.log
>>>>>>
>>>>>> //get description for a given product
>>>>>>            Map queryResult = delegator.findByPrimaryKey("Product",
>>>>>> UtilMisc.toMap("productId", productId));
>>>>>>            Map result = UtilMisc.toMap("description", productId);
>>>>>>            if (queryResult != null) {
>>>>>>                result.put("description",
>>>>>> queryResult.get("description"));
>>>>>>            }
>>>>>>
>>>>>> //create new product
>>>>>>            context.remove("productId");
>>>>>>            context.put("productTypeId", productType);
>>>>>>            context.put("internalName",
>>>>>> productName);                Map
>>>>>> productresult = SimpleMethod.runSimpleService(
>>>>>>                    "org/ofbiz/product/product/ProductServices.xml",
>>>>>>                    "createProduct", dctx, context);
>>>>>>
>>>>>>            return result;
>>>>>>
>>>>>>        } catch (GenericEntityException ex) {//required if you use
>>>>>> delegator in Java
>>>>>>            return ServiceUtil.returnError(ex.getMessage());
>>>>>>        } catch (Exception ex) {//required if you use delegator in
>>>>>> Java
>>>>>>            return ServiceUtil.returnError(ex.getMessage());
>>>>>>        }
>>>>>>    }
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>               
>>>>>           
>>>>
>>>>       
>>>
>>>
>>>     
>>
>>   
> 
> 
> 
> 


Re: SOAP - ofbiz wrapper

Posted by Jacek Wagner <ja...@berkeley.edu>.
I  am not sure I follow. All what I want from this ofbiz wrapper to 
obtain credential in order to complete adding new  product.
This ofbiz wrapper is being called thru soap and has to be able to login 
and process new product.

BJ Freeman wrote:
> I am assuming that you have read code that already does this operations
> to pick up what you not doing.
>
>
> BJ Freeman sent the following on 9/4/2008 5:05 PM:
>   
>> did you check each return Map to check for a "success" message
>>
>> Jacek Wagner sent the following on 9/4/2008 3:01 PM:
>>     
>>> Thank you for the tip. The return map includes  error "You must be
>>> logged in to complete the Create an Product process." I hoped that by
>>> calling LoginServices.userLogin.....with admin/ofbiz (second task)  I am
>>> receiving all credentials I need to complete the task.
>>> Jacek
>>>
>>> BJ Freeman wrote:
>>>       
>>>> Simple services don't provide exceptions.
>>>> They do return a Map that has error messages in it.
>>>> https://demo.hotwaxmedia.com/webtools/control/availableServices?sel_service_name=createProduct
>>>>
>>>> take a look at the Out parameters
>>>> Note this is for
>>>> org/ofbiz/product/product/ProductServices.xml
>>>> and uses a map and runsync
>>>>
>>>> Jacek Wagner sent the following on 9/4/2008 9:55 AM:
>>>>  
>>>>         
>>>>> The following is an ofbiz wrapper that performs three tasks: login, get
>>>>> description for a given product, create new product
>>>>>
>>>>> When run from webtools (performs successfully all three tasks. when
>>>>> called as a soap performs successfully login & get descriptions for a
>>>>> given product. It also run thru create new product, but does not create
>>>>> new product neither throw any exception(s).
>>>>>
>>>>> Wondering Jacek
>>>>>  
>>>>>
>>>>> public static Map createLHSProduct(DispatchContext dctx, Map context) {
>>>>>        GenericDelegator delegator = dctx.getDelegator();
>>>>>
>>>>>        try {
>>>>>            String productId;
>>>>>            String loginuser;
>>>>>            String loginpassword;
>>>>>            String productType;
>>>>>            String productName;
>>>>>
>>>>>            // get the input parameter
>>>>>
>>>>>            productId = (String) context.get("productId");
>>>>>            Debug.logInfo("productId = " + productId, module);    
>>>>>            loginuser = (String) context.get("loginuser");
>>>>>            Debug.logInfo("loginuser = " + loginuser,
>>>>> module);                    //prints to the console or console.log
>>>>>            loginpassword = (String) context.get("loginpassword");
>>>>>            Debug.logInfo("loginpassword = " + loginpassword,
>>>>> module);            //prints to the console or console.log
>>>>>            productType = (String) context.get("productTypeId");
>>>>>            Debug.logInfo("productTypeId = " + productType,
>>>>> module);     //prints to the console or console.log
>>>>>            productName = (String) context.get("internalName");
>>>>>            Debug.logInfo("internalName = " + productName,
>>>>> module);     //prints to the console or console.log
>>>>>
>>>>> // login
>>>>>            context.put("login.username", loginuser);
>>>>>            context.put("login.password", loginpassword);
>>>>>            Map loginresult = LoginServices.userLogin(dctx, context);
>>>>>            Debug.logInfo("loginresult = " + loginresult, module);    
>>>>> //prints to the console or console.log
>>>>>
>>>>> //get description for a given product
>>>>>            Map queryResult = delegator.findByPrimaryKey("Product",
>>>>> UtilMisc.toMap("productId", productId));
>>>>>            Map result = UtilMisc.toMap("description", productId);
>>>>>            if (queryResult != null) {
>>>>>                result.put("description",
>>>>> queryResult.get("description"));
>>>>>            }
>>>>>
>>>>> //create new product
>>>>>            context.remove("productId");
>>>>>            context.put("productTypeId", productType);
>>>>>            context.put("internalName", productName);                Map
>>>>> productresult = SimpleMethod.runSimpleService(
>>>>>                    "org/ofbiz/product/product/ProductServices.xml",
>>>>>                    "createProduct", dctx, context);
>>>>>
>>>>>            return result;
>>>>>
>>>>>        } catch (GenericEntityException ex) {//required if you use
>>>>> delegator in Java
>>>>>            return ServiceUtil.returnError(ex.getMessage());
>>>>>        } catch (Exception ex) {//required if you use delegator in Java
>>>>>            return ServiceUtil.returnError(ex.getMessage());
>>>>>        }
>>>>>    }
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>     
>>>>>           
>>>>   
>>>>         
>>>
>>>       
>>
>>
>>     
>
>   


Re: SOAP - ofbiz wrapper

Posted by BJ Freeman <bj...@free-man.net>.
I am assuming that you have read code that already does this operations
to pick up what you not doing.


BJ Freeman sent the following on 9/4/2008 5:05 PM:
> did you check each return Map to check for a "success" message
> 
> Jacek Wagner sent the following on 9/4/2008 3:01 PM:
>> Thank you for the tip. The return map includes  error "You must be
>> logged in to complete the Create an Product process." I hoped that by
>> calling LoginServices.userLogin.....with admin/ofbiz (second task)  I am
>> receiving all credentials I need to complete the task.
>> Jacek
>>
>> BJ Freeman wrote:
>>> Simple services don't provide exceptions.
>>> They do return a Map that has error messages in it.
>>> https://demo.hotwaxmedia.com/webtools/control/availableServices?sel_service_name=createProduct
>>>
>>> take a look at the Out parameters
>>> Note this is for
>>> org/ofbiz/product/product/ProductServices.xml
>>> and uses a map and runsync
>>>
>>> Jacek Wagner sent the following on 9/4/2008 9:55 AM:
>>>  
>>>> The following is an ofbiz wrapper that performs three tasks: login, get
>>>> description for a given product, create new product
>>>>
>>>> When run from webtools (performs successfully all three tasks. when
>>>> called as a soap performs successfully login & get descriptions for a
>>>> given product. It also run thru create new product, but does not create
>>>> new product neither throw any exception(s).
>>>>
>>>> Wondering Jacek
>>>>  
>>>>
>>>> public static Map createLHSProduct(DispatchContext dctx, Map context) {
>>>>        GenericDelegator delegator = dctx.getDelegator();
>>>>
>>>>        try {
>>>>            String productId;
>>>>            String loginuser;
>>>>            String loginpassword;
>>>>            String productType;
>>>>            String productName;
>>>>
>>>>            // get the input parameter
>>>>
>>>>            productId = (String) context.get("productId");
>>>>            Debug.logInfo("productId = " + productId, module);    
>>>>            loginuser = (String) context.get("loginuser");
>>>>            Debug.logInfo("loginuser = " + loginuser,
>>>> module);                    //prints to the console or console.log
>>>>            loginpassword = (String) context.get("loginpassword");
>>>>            Debug.logInfo("loginpassword = " + loginpassword,
>>>> module);            //prints to the console or console.log
>>>>            productType = (String) context.get("productTypeId");
>>>>            Debug.logInfo("productTypeId = " + productType,
>>>> module);     //prints to the console or console.log
>>>>            productName = (String) context.get("internalName");
>>>>            Debug.logInfo("internalName = " + productName,
>>>> module);     //prints to the console or console.log
>>>>
>>>> // login
>>>>            context.put("login.username", loginuser);
>>>>            context.put("login.password", loginpassword);
>>>>            Map loginresult = LoginServices.userLogin(dctx, context);
>>>>            Debug.logInfo("loginresult = " + loginresult, module);    
>>>> //prints to the console or console.log
>>>>
>>>> //get description for a given product
>>>>            Map queryResult = delegator.findByPrimaryKey("Product",
>>>> UtilMisc.toMap("productId", productId));
>>>>            Map result = UtilMisc.toMap("description", productId);
>>>>            if (queryResult != null) {
>>>>                result.put("description",
>>>> queryResult.get("description"));
>>>>            }
>>>>
>>>> //create new product
>>>>            context.remove("productId");
>>>>            context.put("productTypeId", productType);
>>>>            context.put("internalName", productName);                Map
>>>> productresult = SimpleMethod.runSimpleService(
>>>>                    "org/ofbiz/product/product/ProductServices.xml",
>>>>                    "createProduct", dctx, context);
>>>>
>>>>            return result;
>>>>
>>>>        } catch (GenericEntityException ex) {//required if you use
>>>> delegator in Java
>>>>            return ServiceUtil.returnError(ex.getMessage());
>>>>        } catch (Exception ex) {//required if you use delegator in Java
>>>>            return ServiceUtil.returnError(ex.getMessage());
>>>>        }
>>>>    }
>>>>
>>>>
>>>>
>>>>
>>>>     
>>>   
>>
>>
>>
> 
> 
> 
> 


Re: SOAP - ofbiz wrapper

Posted by BJ Freeman <bj...@free-man.net>.
did you check each return Map to check for a "success" message

Jacek Wagner sent the following on 9/4/2008 3:01 PM:
> Thank you for the tip. The return map includes  error "You must be
> logged in to complete the Create an Product process." I hoped that by
> calling LoginServices.userLogin.....with admin/ofbiz (second task)  I am
> receiving all credentials I need to complete the task.
> Jacek
> 
> BJ Freeman wrote:
>> Simple services don't provide exceptions.
>> They do return a Map that has error messages in it.
>> https://demo.hotwaxmedia.com/webtools/control/availableServices?sel_service_name=createProduct
>>
>> take a look at the Out parameters
>> Note this is for
>> org/ofbiz/product/product/ProductServices.xml
>> and uses a map and runsync
>>
>> Jacek Wagner sent the following on 9/4/2008 9:55 AM:
>>  
>>> The following is an ofbiz wrapper that performs three tasks: login, get
>>> description for a given product, create new product
>>>
>>> When run from webtools (performs successfully all three tasks. when
>>> called as a soap performs successfully login & get descriptions for a
>>> given product. It also run thru create new product, but does not create
>>> new product neither throw any exception(s).
>>>
>>> Wondering Jacek
>>>  
>>>
>>> public static Map createLHSProduct(DispatchContext dctx, Map context) {
>>>        GenericDelegator delegator = dctx.getDelegator();
>>>
>>>        try {
>>>            String productId;
>>>            String loginuser;
>>>            String loginpassword;
>>>            String productType;
>>>            String productName;
>>>
>>>            // get the input parameter
>>>
>>>            productId = (String) context.get("productId");
>>>            Debug.logInfo("productId = " + productId, module);    
>>>            loginuser = (String) context.get("loginuser");
>>>            Debug.logInfo("loginuser = " + loginuser,
>>> module);                    //prints to the console or console.log
>>>            loginpassword = (String) context.get("loginpassword");
>>>            Debug.logInfo("loginpassword = " + loginpassword,
>>> module);            //prints to the console or console.log
>>>            productType = (String) context.get("productTypeId");
>>>            Debug.logInfo("productTypeId = " + productType,
>>> module);     //prints to the console or console.log
>>>            productName = (String) context.get("internalName");
>>>            Debug.logInfo("internalName = " + productName,
>>> module);     //prints to the console or console.log
>>>
>>> // login
>>>            context.put("login.username", loginuser);
>>>            context.put("login.password", loginpassword);
>>>            Map loginresult = LoginServices.userLogin(dctx, context);
>>>            Debug.logInfo("loginresult = " + loginresult, module);    
>>> //prints to the console or console.log
>>>
>>> //get description for a given product
>>>            Map queryResult = delegator.findByPrimaryKey("Product",
>>> UtilMisc.toMap("productId", productId));
>>>            Map result = UtilMisc.toMap("description", productId);
>>>            if (queryResult != null) {
>>>                result.put("description",
>>> queryResult.get("description"));
>>>            }
>>>
>>> //create new product
>>>            context.remove("productId");
>>>            context.put("productTypeId", productType);
>>>            context.put("internalName", productName);                Map
>>> productresult = SimpleMethod.runSimpleService(
>>>                    "org/ofbiz/product/product/ProductServices.xml",
>>>                    "createProduct", dctx, context);
>>>
>>>            return result;
>>>
>>>        } catch (GenericEntityException ex) {//required if you use
>>> delegator in Java
>>>            return ServiceUtil.returnError(ex.getMessage());
>>>        } catch (Exception ex) {//required if you use delegator in Java
>>>            return ServiceUtil.returnError(ex.getMessage());
>>>        }
>>>    }
>>>
>>>
>>>
>>>
>>>     
>>
>>   
> 
> 
> 
> 


Re: SOAP - ofbiz wrapper

Posted by Jacek Wagner <ja...@berkeley.edu>.
Thank you for the tip. The return map includes  error "You must be 
logged in to complete the Create an Product process." I hoped that by 
calling LoginServices.userLogin.....with admin/ofbiz (second task)  I am 
receiving all credentials I need to complete the task.
Jacek

BJ Freeman wrote:
> Simple services don't provide exceptions.
> They do return a Map that has error messages in it.
> https://demo.hotwaxmedia.com/webtools/control/availableServices?sel_service_name=createProduct
> take a look at the Out parameters
> Note this is for
> org/ofbiz/product/product/ProductServices.xml
> and uses a map and runsync
>
> Jacek Wagner sent the following on 9/4/2008 9:55 AM:
>   
>> The following is an ofbiz wrapper that performs three tasks: login, get
>> description for a given product, create new product
>>
>> When run from webtools (performs successfully all three tasks. when
>> called as a soap performs successfully login & get descriptions for a
>> given product. It also run thru create new product, but does not create
>> new product neither throw any exception(s).
>>
>> Wondering Jacek
>>  
>>
>> public static Map createLHSProduct(DispatchContext dctx, Map context) {
>>        GenericDelegator delegator = dctx.getDelegator();
>>
>>        try {
>>            String productId;
>>            String loginuser;
>>            String loginpassword;
>>            String productType;
>>            String productName;
>>
>>            // get the input parameter
>>
>>            productId = (String) context.get("productId");
>>            Debug.logInfo("productId = " + productId, module);     
>>            loginuser = (String) context.get("loginuser");
>>            Debug.logInfo("loginuser = " + loginuser,
>> module);                    //prints to the console or console.log
>>            loginpassword = (String) context.get("loginpassword");
>>            Debug.logInfo("loginpassword = " + loginpassword,
>> module);            //prints to the console or console.log
>>            productType = (String) context.get("productTypeId");
>>            Debug.logInfo("productTypeId = " + productType, module);     
>> //prints to the console or console.log
>>            productName = (String) context.get("internalName");
>>            Debug.logInfo("internalName = " + productName, module);     
>> //prints to the console or console.log
>>
>> // login
>>            context.put("login.username", loginuser);
>>            context.put("login.password", loginpassword);
>>            Map loginresult = LoginServices.userLogin(dctx, context);
>>            Debug.logInfo("loginresult = " + loginresult, module);     
>> //prints to the console or console.log
>>
>> //get description for a given product
>>            Map queryResult = delegator.findByPrimaryKey("Product",
>> UtilMisc.toMap("productId", productId));
>>            Map result = UtilMisc.toMap("description", productId);
>>            if (queryResult != null) {
>>                result.put("description", queryResult.get("description"));
>>            }
>>
>> //create new product
>>            context.remove("productId");
>>            context.put("productTypeId", productType);
>>            context.put("internalName", productName);                Map
>> productresult = SimpleMethod.runSimpleService(
>>                    "org/ofbiz/product/product/ProductServices.xml",
>>                    "createProduct", dctx, context);
>>
>>            return result;
>>
>>        } catch (GenericEntityException ex) {//required if you use
>> delegator in Java
>>            return ServiceUtil.returnError(ex.getMessage());
>>        } catch (Exception ex) {//required if you use delegator in Java
>>            return ServiceUtil.returnError(ex.getMessage());
>>        }
>>    }
>>
>>
>>
>>
>>     
>
>   


Re: SOAP - ofbiz wrapper

Posted by BJ Freeman <bj...@free-man.net>.
Simple services don't provide exceptions.
They do return a Map that has error messages in it.
https://demo.hotwaxmedia.com/webtools/control/availableServices?sel_service_name=createProduct
take a look at the Out parameters
Note this is for
org/ofbiz/product/product/ProductServices.xml
and uses a map and runsync

Jacek Wagner sent the following on 9/4/2008 9:55 AM:
> The following is an ofbiz wrapper that performs three tasks: login, get
> description for a given product, create new product
> 
> When run from webtools (performs successfully all three tasks. when
> called as a soap performs successfully login & get descriptions for a
> given product. It also run thru create new product, but does not create
> new product neither throw any exception(s).
> 
> Wondering Jacek
>  
> 
> public static Map createLHSProduct(DispatchContext dctx, Map context) {
>        GenericDelegator delegator = dctx.getDelegator();
> 
>        try {
>            String productId;
>            String loginuser;
>            String loginpassword;
>            String productType;
>            String productName;
> 
>            // get the input parameter
> 
>            productId = (String) context.get("productId");
>            Debug.logInfo("productId = " + productId, module);     
>            loginuser = (String) context.get("loginuser");
>            Debug.logInfo("loginuser = " + loginuser,
> module);                    //prints to the console or console.log
>            loginpassword = (String) context.get("loginpassword");
>            Debug.logInfo("loginpassword = " + loginpassword,
> module);            //prints to the console or console.log
>            productType = (String) context.get("productTypeId");
>            Debug.logInfo("productTypeId = " + productType, module);     
> //prints to the console or console.log
>            productName = (String) context.get("internalName");
>            Debug.logInfo("internalName = " + productName, module);     
> //prints to the console or console.log
> 
> // login
>            context.put("login.username", loginuser);
>            context.put("login.password", loginpassword);
>            Map loginresult = LoginServices.userLogin(dctx, context);
>            Debug.logInfo("loginresult = " + loginresult, module);     
> //prints to the console or console.log
> 
> //get description for a given product
>            Map queryResult = delegator.findByPrimaryKey("Product",
> UtilMisc.toMap("productId", productId));
>            Map result = UtilMisc.toMap("description", productId);
>            if (queryResult != null) {
>                result.put("description", queryResult.get("description"));
>            }
> 
> //create new product
>            context.remove("productId");
>            context.put("productTypeId", productType);
>            context.put("internalName", productName);                Map
> productresult = SimpleMethod.runSimpleService(
>                    "org/ofbiz/product/product/ProductServices.xml",
>                    "createProduct", dctx, context);
> 
>            return result;
> 
>        } catch (GenericEntityException ex) {//required if you use
> delegator in Java
>            return ServiceUtil.returnError(ex.getMessage());
>        } catch (Exception ex) {//required if you use delegator in Java
>            return ServiceUtil.returnError(ex.getMessage());
>        }
>    }
> 
> 
> 
>