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());
> }
> }
>
>
>
>