Oracle BPEL: Modify files by using Base64decode & Base64encode in a BPEL process

In this blog I’ll show you have to read a file content in BPEL adding header and footer to the file.

To do this you need to decode the file first by using Base64decode in an embedded Java (see process activities)

First create a BPEL process and make sure that you have a simple process which can read a file by using file adapter from the server and can also write(by using file adapter) it to the server (See other blogs how to create such a process).

Your process will look like this:

Now we gonna do the real work.

1. To simplify the idea, we gonna add two extra variables to the process(you can also work directly with Read output parameter):

v_inputData and v_outputData of the type opaque:

2. once you have the variables you can assign the syncRead output parameter to v_inputData

3. now you can add a Java_Embedding activity to your process:

add the following java code

// Decode the file to be able to add a header text to the file. You can put in your java code calculations and other stuff as well. //

addAuditTrailEntry(“Base64decode started”);
String input_data=null;
try {
input_data = ((oracle.xml.parser.v2.XMLElement)getVariableData(“v_inputData”,”opaque”,”/ns4:opaqueElement”)).getFirstChild().getNodeValue();
//Replace the | char in the file
String decodedString = Base64Decoder.decode(input_data);

setVariableData(“v_outputData”,”opaque”,”/ns4:opaqueElement”,” Header tekst\n” + decodedString);
} catch (Exception e) {
addAuditTrailEntry(“Base64decode Exception: ” + e.getMessage());
} addAuditTrailEntry(“Base64decode ended”);

//Encode the file to let the fileadapter server be able to write the file to the sever//
addAuditTrailEntry(“Base64encode started”);
String input_str = null;
try {
input_str = ((oracle.xml.parser.v2.XMLElement)getVariableData(“v_outputData”,”opaque”,”/ns4:opaqueElement”)).getFirstChild().getNodeValue();
addAuditTrailEntry(“Base64encode input_str=”+input_str);
String encoded = null;
encoded = Base64Encoder.encode(input_str);
addAuditTrailEntry(“Base64encode encoded=”+encoded);
setVariableData(“Invoke_2_Write_InputVariable”,”opaque”,”/ns4:opaqueElement”,encoded);
} catch (Exception e) {
addAuditTrailEntry(“Base64encode Exception: “+e.getMessage());
}
addAuditTrailEntry(“Base64encode ended”);

4. remember that Invoke_2_Write_InputVariable is the invoke input of the write file adapter.

Deploy your application and test it. for any question drop me an email.

End op the this pot.

Mapping users to a role in Weblogic

You will have to go to:
Home >> Summary of Security Realms >> myrealm >> Roles and Policies tab:
Expand the Global Roles tree:

take any of the available roles , let us say: Requester
Click on the view and modify roles:
under Roles Condition : Click on Add Condition :
From the List: select Groups
Then Under the Group name type: mygroup
Click Add
Then Choose : “or” as the to add the multiple groups to a single role.

Click on save.
you might have to restart the server after making changes to the roles.