How to expose informatica as a web service for salesforce to connect and pass data? - web-services

We have salesforce where in we need to pass Id field for informatica , once this Id field is passed, informatica will fetch records from database based on the Id. How can we expose informatica power centre as a web service for salesforce to call

Typically this would've been done as part of the Informatica process to send a request to SF, get the Id and use it for further processing.
If the flow needs to be initiated by SF, you can expose workflow as a webservice and have SF make the request to PowerCenter. Rather a rare scenario, and not really recommended.
Check your requirements, check docs and tutorials, try building the solution, let us know if some help is required.

Related

API Manager Analytics

We are working on a solution built on top of WSO2 APIM.
Problem Statement:
We want to add custom capability in existing APIM. Right now if we consume a single api endpoint it gives us meaningful statics some of them are:
API Usage API
API Usage per Application
Top Users per Application
Resource Usage per Application
But what we need is to store some/all incoming request data into database and extract meaningful information over time.
Example:
Suppose we have a api endpoint like below:
HTTP-Verb: POST
URL: http://localhost:9444/subscriptions/1/create_subscription
Params: name:sample_name, type:sample_type, user_id:12345
What we want?
It could be WSO2, OpenAM or any other opensource API manager.
We need to store parameter values e.g. sample_name, sample_type
and user_id in database.
Observations?
Looks like WSO Stream Processor can provide this functionality.
As it has a solution for HTTP Analytics. But we are not certain
to proceed with this option.
Another possible candidate is to Extend API Manager. But docs doesn't have anything to target what we wanted to do.
I am not sure but we can use RequestInterceptor?
Anyone has a experience with this kind of problem please let me know.
There are two problems you have to solve here,
1. Capture the required data from the APIM side
2. Publish to Analytics Server
3. Perform Analytics on received events
As you have observed WSO2 SP can be used for 3.
For 1 & 2, please see blog (https://medium.com/#naduni_pamudika/how-to-publish-custom-attributes-from-wso2-api-manager-to-wso2-analytics-38dd83e8aea2) for extending the publishers to capture and publish additional data.
You can also take a look at OpenIG, it is easy to extend and you can implement your own filter to store request data in database. Another approach is develop your own gateway based on Netflix Zuul or Spring Cloud Gateway

How to fetch course price from moodle web service APIs

I am building mobile app that uses moodle web service APIs to fetch data, issue is i am not getting data for course price as well as start and end date for a particular enrolled course from the api response. Any help regarding this would be appriciated.
Since there is web serivce functions to retrieve course price, start date and end date you have to create a custom web service to retrieve these values. Please note Moodle is not storing the course end date. Hope this helps.

What WSO2 technologies can I use to implement something like this? Is Enterprise Integration the right choice?

I am absolutly new in the WSO2 world and I have the following problem.
I have to developer a toolkit application and the customer says to me that, if possible, they want introduce WSO2 technologies in this project. I will try to explain what exactly this toolkit project have to do to try to understand if and what WSO2 technologies eventually can match with the requirement.
The toolkint project have to do:
1) When executed have to connect to a local database and perform some queries.
2) Use the data obtained from the previous query to create an XML document.
3) Send this XML document into a request to a web service (I think that the content of this XML will be put into the request body of the sended request).
4) Use the web service response to update some data in the local database.
So I am trying to understand if there are some WSO2 technologies that match these requirements or if it is better to create this toolkit as a simple standard Java program.
Searching online I have identified WSO2 Enterprise Integration and WSO2 Data Services Server (that I think it is included into WSO2 Enterprise Integration).
At the beginning I had thought to use Data Services Server to access to the DB, perform the queries and so retrieve data from the DB tables.
But reading the official documentation (https://docs.wso2.com/display/DSS351/About+Data+Services+Server) it seems to me that it is more a technology thinked to expose a DB using web service, infact in this documentation I can read:
Data services provide a convenient mechanism to configure a Web
service interface for data in various datasources such as relational
databases, CSV files, Microsoft Excel sheets, Google spreadsheets
etc...
Infact reading this official tutorial: https://docs.wso2.com/display/DSS351/Quick+Start+Guide
it seems to me that if does the opposite of what I have to do.
IT DOES:
SET THE DB CONNECTION.
PERFORM THE QUERY.
EXPOSE THE DATA RETURNED BY THIS QUERY AS A WEB SERVICE.
I HAVE TO DO:
SET THE DB CONNECTION.
PERFORM THE QUERY.
SEND THE OBTAINED DATA TO A WEB SERVICE (in XML format).
So it seems to me that Data Services Server is not the right choice because it seems to me that more than help me to do data access, data manipulation and send these data to an endpoing it is useful to do data access and to expose these data as a web service (but maybe I am missing something).
So I am trying to understand if WSO2 Enterprise Integration contains some modules that better fulfills my requirements.
Reading the official documentation (https://docs.wso2.com/display/EI600/Enterprise+Integration+Patterns) it seems to me that I can use:
1) BPEL/BPMN process to define the operations flow.
2) It seems to me that I can do DB queries but I always have the same doubt (that it is used to expose the retrieved data as service and not to use internally, it seems to me that this is WSO2 Data Services Server putted into WSO2 Enterprise Integration).
3) I think that this module provides me a way to aggragate data from some queries into an XML document: https://docs.wso2.com/display/EI600/Transforming+Message+Content
4) I can send a request with the previous generated XML usingsomething like this: https://docs.wso2.com/display/EI600/Sending+a+Simple+Message
So can you help me to identify what WSO2 techonlogies I can use to implement something like this or if it is better to implement it manually in pure Java?
1) When executed have to connect to a local database and perform some queries.
R:/For this point you can create a data service using DSS or EI.
2) Use the data obtained from the previous query to create an XML document.
R:/You can create a proxy service using the ESB or EI, inside the proxy service you call the data service created in the previous point(using call mediator) and get the response message in a property mediator to create a new payload message(using payload, enrich or/and a xslt mediator).
3) Send this XML document into a request to a web service (I think that the content of this XML will be put into the request body of the sended request).
R:/Inside the proxy service created in the previous point and after the creation of the new payload message you can send that payload to another webservice using call mediator.
4) Use the web service response to update some data in the local database.
R:/ You can get the response message, create a new payload message and call another data service, or another operation of the same data service created in the first point.
UPDATE 1:
you can use the IDE or the web UI, as you like. for the implementation check this out: Combine two queries using WSO2 ESB as a start.
Inside the IDE you can go to Developer Studio menu, clic in OpenDashboard and create a "ESB Solution Project" or a "ESB Config Project" for the ESB stuff, and a Data Service Project for the data service.

How to Create a Process in Informatica Cloud Real time which gets exposed as Restful service and can be invoked from browser or else where?

Can we create a Webservice using Informatica?
I am very new to Informatica.
Is the below requirement possible in using Informatica?
My requirement is -
"I want to create a Real Time RESTful webservice within Informatica Cloud which will fetch data from an Oracle Database and present output in JSON format when an particular URi is invoked."
Note: I am not trying to connect to a Webservice, so please don't tell me about Webservice connector.
I want to create a Webservice Server Provider within Informatica so that when someone calls a URI in browser, this should query the Webservice deployed inside the Informatica Cloud and present the data on the browser in JSON format
Edit: Re-framed the question in a more Informatica kinda language
Note: If you provide step by step process I would really appreciate it.
I am a Java developer and I started learning Informatica like a week ago, I started from "What is Informatica?". So please explain as if you are explaining an idiot.
Update :: I have been using the following link as a reference. Using this as is doesn't work. I have been trying this for months now. I get an error while deploying. "Can't be deployed within tenant context" So definitely I am missing something. Can anybody throw some light on this please ?
http://www.onbostonharbor.com/Informatica/index.htm#page/bpm-na-process-developer/GUID-575B15AD-B21D-4979-9801-70564434FF2B.1.033.html
Oliver, is this still something you're trying to do?
In Informatica Cloud, you can define a JDBC connection to any JDBC-accessible database. To access the associated database via REST, there's an extra step on the connection definition where you specify that that you wish to OData-enable that particular connection. (OData being a particular REST specification.) You also have to specify which tables you'd like to expose. When you publish this connection, there will be a URL or service address that you can use to invoke this. You don't have to have this inside a full-blown process.
Then from within a browser or any HTTP-compatible client (Postman, for example), you are able to access any of the tables you've exposed using OData commands.
You can get some good background on OData at http://www.odata.org/getting-started/basic-tutorial/.
Hope this helps.

EJB3 Based JAX-WS Web Service authentication on Weblogic

I'm just trying to develop an internal web service for a news agency which is connected to a MySQL database where all the authentication/news data remains. The purpose of all of this is to generate an XML version of the article/ list of articles depending upon the client's subscription, so it can be shown by a mobile frontend that I am working on, using Java Server Faces.
Up to date, I have generated and annotated JPA entities from my database using Eclipse, as well as created a Stateless Session Bean so it can be published as a web service. All of this works absolutely fine, so it's time to take it to the next level, but I don't know where to start.
I managed to set up a custom authenticator provider within WebLogic using my database, but don't really know if that's handy and where to go next.
I also had a look on OpenAM but thought there should be something native to either JAX-WS or WebLogic.
How could I approach this? The requirements as far as I can see would be:
One time authentication.
Using username/password stored on a MySQL table.
Authentication data provided within the SOAP message? (The client would log in through the JSF frontend, sending that data to the WS to check if it's valid).
Thanks!!!
p.s.: I did Java a long time ago, so I've been "disconnected" from the latest technologies/methodologies, so although my question goes quite straight to the point, if you think there would be a better way to accomplish what I've done so far just let me know, please.