Documentation Issues and Updates for SAP Mobile SDK

Read about updates, corrections, and clarifications to the documentation released with SAP Mobile Platform Mobile SDK.

Issue #Description
SMPONP-10699
DataVault encryption algorithm is AES-128.

The statement "The contents of the data vault are strongly encrypted using AES-256" is incorrect. It should read "AES-128".

Applies to: Developer Guide: iOS Object API Applications > Client Object API Usage > Security APIs > SUPDataVault.

SMPONP-11800
Incorrect version numbers in tutorials
The topics in these tutorials should show version number 2.3, not 2.2 SP02 or 2.3 SP02:
  • Tutorial: Hybrid App Package Development > Developing a Hybrid App Package
  • Tutorial: BlackBerry Object API Application Development > Developing a BlackBerry Application > Creating the BlackBerry Project
  • Tutorial: Windows Mobile Object API Application Development > Developing a Windows Mobile Device Application
  • Tutorial: Windows Mobile Object API Application Development > Developing a Windows Mobile Device Application > Creating the User Interface for the Windows Mobile Device Application
  • Tutorial: Windows Object API Application Development > Developing a Windows Application
  • Tutorial: iOS Object API Application Development > Developing an iOS Application
SMPONP-11276
Native IDEs support custom development for hybrids apps

The note in Supported Hardware and Software > SAP Mobile SDK Requirements > Supported Platforms and Development Environments > HTML5/JS Hybrid Apps should read:

Note: Custom development using native IDEs is supported. The Hybrid Web Container application is available in the form of a template project with static libraries for easy extensibility and branding. See Developer Guide: Hybrid Apps > Hybrid Web Container Customization.
SMPONP-10684
The MBO Access JavaScript API Samples topic provides incorrect directions to invoke the delete operation, and fails to delete data from the back end.

If the delete operation has old value arguments, you also need to set old values for parent and child MBOs. Assuming the delete operation has old value arguments, and the data (1 department and 2 employee) has been inserted into back end, the sample code in steps 2 and 3 should be as follows:

Step 2.

  if ( workflowMessage.getRequestAction() === Department.findByPrimaryKeyAction){
  	          		
  	                 var employees = workflowMessage.getValues().getData('Department_employees').value;
  	        	       	                 
  	                 if ( workflowMessage.getValues().getData('Department_dept_id_attribKey').getValue()== '2'){
  	  		         	var dep = new Department();
  	        	    	dep.dept_id=workflowMessage.getValues().getData('Department_dept_id_attribKey').getValue();
						dep.dept_head_id=workflowMessage.getValues().getData('Department_dept_head_id_attribKey').getValue();      			
  	          	        dep.dept_name=workflowMessage.getValues().getData('Department_dept_name_attribKey').getValue();

						var oldDep = new Department();
  	          	        oldDep.dept_id=workflowMessage.getValues().getData('Department_dept_id_attribKey').getValue();
  	          	        oldDep.dept_name=workflowMessage.getValues().getData('Department_dept_name_attribKey').getValue();
        	            oldDep.dept_head_id=workflowMessage.getValues().getData('Department_dept_head_id_attribKey').getValue();      			
  	        	    	
  		                for( var i = 0; i < employees.length ; i++ ) {
  	        				var emp = new Employee();
  	        				emp.emp_id = employees[i].getData('Employee_emp_id_attribKey').getValue();
  	        				emp.manager_id = employees[i].getData('Employee_manager_id_attribKey').getValue();
  	        				emp.emp_fname = employees[i].getData('Employee_emp_fname_attribKey').getValue();
  	        				emp.emp_lname = employees[i].getData('Employee_emp_lname_attribKey').getValue();
  	        				emp.dept_id = employees[i].getData('Employee_dept_id_attribKey').getValue();
  	        				emp.street = employees[i].getData('Employee_street_attribKey').getValue();
  	        				emp.city = employees[i].getData('Employee_city_attribKey').getValue();
  	        				emp.state = employees[i].getData('Employee_state_attribKey').getValue();
  	        				emp.zip_code = employees[i].getData('Employee_zip_code_attribKey').getValue();
  	        				emp.phone = employees[i].getData('Employee_phone_attribKey').getValue();
  	        				emp.status = employees[i].getData('Employee_status_attribKey').getValue();
  	        				emp.ss_number = employees[i].getData('Employee_ss_number_attribKey').getValue();
  	        				emp.salary = employees[i].getData('Employee_salary_attribKey').getValue();
  	        				emp.start_date = employees[i].getData('Employee_start_date_attribKey').getValue().substr(0, 10);
  	        				emp.termination_date = employees[i].getData('Employee_termination_date_attribKey').getValue().substr(0, 10);
  	        				emp.birth_date = employees[i].getData('Employee_birth_date_attribKey').getValue().substr(0, 10);
  	        				emp.bene_health_ins = employees[i].getData('Employee_bene_health_ins_attribKey').getValue();
  	        				emp.bene_life_ins = employees[i].getData('Employee_bene_life_ins_attribKey').getValue();
  	        				emp.bene_day_care = employees[i].getData('Employee_bene_day_care_attribKey').getValue();
  	        				emp.sex = employees[i].getData('Employee_sex_attribKey').getValue();
  	                              //set surrogateKey for employ 
  	        				emp._surrogateKey =employees[i].getData('_surrogateKey').getValue();
  	        				dep.Employee.push(emp );
  	        				dep.OldValue_Employee.push( emp );
  	        		  	}

Step 3.

department_delete_onlineRequest( dep, oldDep, function( error) { alert(error)});
        				  
					  }
					  ........ 
				   }
SMPONP-3509
The Web Service Mobile Business Object Limitations topic is outdated.

Current Web Service MBO limitations are:

The SAP Mobile Platform WSDL/XSD parser generates SAP Mobile Platform structure types for <complexType> schema elements and attempts to map user defined <simpleType> elements and schema built-in types into SAP Mobile Platform primitive types. For example, the schema type <xsd:integer> maps to the SAP Mobile Platform INTEGER type. However, there are schema types that are not directly supported by SAP Mobile Platform, and for these types the Sybase Unwired Platform WSDL/XSD parser maps them to the Sybase Unwired Platform STRING type. For example, the schema built-in type <xsd:union> is not directly supported by SAP Mobile Platform and therefore appears as a SAP Mobile Platform STRING type attribute.

Recursive definitions are ignored by the parser.

SMPONP-2875
The Using Multiple Hybrid Web Containers on the Same iOS Device topic is missing a step.
Draft comment:
fredh: this can be removed from the 2.3 SP03 RB since it was added to the content.
Workaround: Perform this additional step at the beginning of the procedure; Changing the project name:
  1. In the Xcode Project Navigator, click on the root Hybrid Web Container element.
  2. With the Hybrid Web Container element highlighted click on the Hybrid Web Container text to rename.
  3. Change the name of the Hybrid Web Container element to your new project name.
  4. A window to rename project content items appears. Click Rename.
NA
BES Requirements topic in Mobile Application Life Cycle omits requirement for BlackBerry Enterprise Server to have access to the internal network.

BES (hosted or not)

Workaround: When referring to the "BlackBerry Enterprise Server Requirements" table in BES Requirements topic in Mobile Application Life Cycle, include this row as the last row in that table:

Prerequisite Where to Find Information
Ensure BES, hosted or unhosted, has access to your internal network. Contact the system administrator for your internal network.
CR-710608

onHttpCommunicationError returns an unexpected code

In an environment configured for SiteMinder authentication, the expectation is that onHttpCommunicationError is called back for error condition 302. This condition is not currently fulfilled by the Windows and Windows Mobile platforms; instead, they return 404 errors.

Applies to Debugging Common Activation Errors in the Troubleshooting guide.