Sunteți pe pagina 1din 17

<html>

<head>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script src="datajs-1.1.2.min.js"></script>
<script src="scripts/index.js"></script>
<script src="scripts/platformOverrides.js"></script>
<script>
var appId = "com.cnj.rigsrv"; // Change this to app id on server
var applicationContext = null;
var smpServerProtocol = "https";
var smpServerHost = "mobile-bd35f4f3c.us1.hana.ondemand.com";
var smpServerPort = "443";
var authStr = "";
var store = null; //Offline OData store
var startTime = null;
var online = navigator.onLine;
// Optional initial connection context
var context = {
"serverHost": smpServerHost, //Place your SMP 3.0 server name here
"https": smpServerProtocol == "https",
"serverPort": smpServerPort,
"user": "rakamath"
};
window.onerror = onError;
function onError(msg, url, line) {
var idx = url.lastIndexOf("/");
var file = "unknown";
if (idx > -1) {
file = url.substring(idx + 1);
}
alert("An error occurred in " + file + " (at line # " + line + "): " + m
sg);
return false; //suppressErrorAlert;
}
function init() {
if (sap.Logger) {
sap.Logger.setLogLevel(sap.Logger.DEBUG); //enables the display of
debug log messages from the Kapsel plugins.
sap.Logger.debug("Log level set to DEBUG");
}
register()
console.log("init completed");
}
function register() {
updateStatus2("register called");
sap.Logon.init(logonSuccessCallback, logonErrorCallback, appId, context)
;
}
function logonSuccessCallback(result) {
console.log("logonSuccessCallback " + JSON.stringify(result));
updateStatus2("Successfully REGISTERED");
applicationContext = result;

//alternatively the authproxy and logon plugincan provide this if SAPKap


selHandleHttpRequests=true, (it is by default on iOS)
authStr = "Basic " + btoa(applicationContext.registrationContext.user +
":" + applicationContext.registrationContext.password);
}
function logonErrorCallback(error) { //this method is called if the user c
ancels the registration.
console.log("An error occurred: " + JSON.stringify(error));
if (device.platform == "Android") { //Not supported on iOS
navigator.app.exitApp();
}
}
function unRegister() {
updateStatus2("unregister called");
sap.Logon.core.deleteRegistration(logonUnregisterSuccessCallback, errorC
allback);
clearTable();
}
function logonUnregisterSuccessCallback(result) {
updateStatus2("Successfully UNREGISTERED");
console.log("logonUnregisterSuccessCallback " + JSON.stringify(result));
applicationContext = null;
}
function errorCallback(e) {
// alert("An error occurred " + JSON.stringify(e));
var msg = new Windows.UI.Popups.MessageDialog("An error occurred " + JSO
N.stringify(e));
msg.showAsync();
console.log("An error occurred " + JSON.stringify(e));
updateStatus1("");
}
function read() {
updateStatus2("read request started");
startTime = new Date();
clearTable();
if (!haveAppId()) {
return;
}
var sURL = applicationContext.applicationEndpointURL + "/ServiceOrderSet
?$expand=NavBillableItem&orderBy=OrderNum desc";
var oHeaders = {};
oHeaders['Authorization'] = authStr;
//oHeaders['X-SMP-APPCID'] = applicationContext.applicationConnectionId;
//this header is provided by the logon plugin
var request = {
headers : oHeaders,
requestUri : sURL,
method : "GET"
};
console.log("read using " + sURL);
OData.read(request, readSuccessCallback, errorCallback);

}
function readSuccessCallback(data, response) {
var endTime = new Date();
var duration = (endTime - startTime)/1000;
updateStatus2("Read " + data.results.length + " records in " + duration
+ " seconds");
var categoriesTable = document.getElementById("CategoriesTable");
var productsTable = document.getElementById("ProductsTable");
for (var i = 0; i < data.results.length; i++) {
var row = categoriesTable.insertRow(1);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
cell1.innerHTML = data.results[i].OrderNumber;
cell2.innerHTML = data.results[i].OrderDesc;
cell3.innerHTML = data.results[i].Status;
debugger;
for (var j = 0; j < data.results[i].NavBillableItem.results.length;

//
j++) {

var row = productsTable.insertRow(1);


var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
cell1.innerHTML = data.results[i].OrderNumber;
cell2.innerHTML = data.results[i].NavBillableItem.results[j].Ite
mId;
cell3.innerHTML = data.results[i].NavBillableItem.results[j].Pri
ce;
}
}
/*
var productsTable = document.getElementById("ProductsTable");
for (var i = 0; i < data.results.length; i++) {
var row = productsTable.insertRow(1);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
cell1.innerHTML = data.results[i].OrderNumber;
cell2.innerHTML = data.results[i].OrderDesc;
cell3.innerHTML = data.results[i].Status;
}
*/
}
function clearTable() {
var productsTable = document.getElementById("ProductsTable");
while(productsTable.rows.length > 1) {
productsTable.deleteRow(1);
}
}
function openStore() {
if (!haveAppId()) {
return;
}
startTime = new Date();
updateStatus2("store.open called");

var properties = {
"name": "ProductsOfflineStore",
"host": applicationContext.registrationContext.serverHost,
"port": applicationContext.registrationContext.serverPort,
"https": applicationContext.registrationContext.https,
"serviceRoot" : appId,
"definingRequests" : {
"ProductsDR": "/ServiceOrderSet",
"CategoriesDR": "/JobHeaderSet"
}
};
store = sap.OData.createOfflineStore(properties);
//var options = {};
store.open(openStoreSuccessCallback, errorCallback/*, options*/);
}
function openStoreSuccessCallback() {
var endTime = new Date();
var duration = (endTime - startTime)/1000;
updateStatus2("Store opened in " + duration + " seconds");
updateStatus1("Store is OPEN.");
sap.OData.applyHttpClient(); //Offline OData calls can now be made agai
nst datajs.
}
function closeStore() {
if (!store) {
updateStatus2("The store must be opened before it can be closed");
return;
}
startTime = new Date();
updateStatus2("store.close called");
store.close(closeStoreSuccessCallback, errorCallback);
}
function closeStoreSuccessCallback() {
sap.OData.removeHttpClient();
var endTime = new Date();
var duration = (endTime - startTime)/1000;
updateStatus1("Store is CLOSED.");
updateStatus2("Store closed in " + duration + " seconds");
}
//Removes the physical store from the filesystem
function clearStore() {
if (!store) {
updateStatus2("The store must be closed before it can be cleared");
return;
}
store.clear(clearStoreSuccessCallback, errorCallback);
}
function clearStoreSuccessCallback() {
updateStatus1("");
updateStatus2("Store is CLEARED");
store = null;
}

function haveAppId() {
if (!applicationContext) {
alert("Please register with the SMP Server before proceeding");
return false;
}
return true;
}
function updateStatus1(msg) {
document.getElementById('statusID').innerHTML = msg + " " + getDeviceSta
tusString();
console.log(msg + " " + getDeviceStatusString());
}
function updateStatus2(msg) {
var d = new Date();
document.getElementById('statusID2').innerHTML = msg + " at " + addZero(
d.getHours()) + ":" + addZero(d.getMinutes()) + "." + addZero(d.getSeconds());
console.log(msg + " at " + addZero(d.getHours()) + ":" + addZero(d.getMi
nutes()) + "." + addZero(d.getSeconds()));
}
function addZero(input) {
if (input < 10) {
return "0" + input;
}
return input;
}
function getDeviceStatusString() {
if (online) {
return "Device is ONLINE";
}
else {
return "Device is OFFLINE";
}
}
function deviceOnline() {
online = true;
updateStatus1("");
}
function deviceOffline() {
online = false;
updateStatus1("");
}
function getEndPointURL() {
return applicationContext.applicationEndpointURL;
}
function batchRequest() {
var oHeaders = {
};
/*
var params = {
__batchRequests: [{

__changeRequests: [{
requestUri: getEndPointURL() + "/ServiceOrderSet",
method: "POST",
headers: {
"Content-ID": "1"
},
data: {
"OrderNumber": "1000040",
"OrderDesc": "Test Order Short Desc",
"Status": "In-Progress",
"ChangedOn": "\/Date(1198908717056)\/",
"ChangedAt": "PT06H34M19S",
"CreatedOn": "\/Date(1198908717056)\/",
"Customer": "Customer Services",
"Well": "Customer Services",
"NavJobHeader": {
"OrderNumber": "1000040",
"Address": "225 PO BOX 100000, A225",
"Api": "PO BOX 100000",
"BillTo": "Test",
"BillToName": "Name",
"BidPrice": "20",
"CostCenter": "20",
"CostCenterDesc": "Trial",
"County": "India",
"CreatedOn": "\/Date(1198908717056)\/",
"CustShortCodeDesc": "Group1",
"Customer": "Ranger Supplies",
"CustomerNo": "0000100000",
"CustomerShortCode": "AAA",
"EquipmentDesc": "BBB",
"EquipmentNo": "000000000010000001",
"Function": "M12",
"FunctionDesc": "Transportation",
"JobDescription": "Service Standard Material",
"Latitude": "225",
"Lease": "Main Street",
"Longitude": "A225",
"Pad": "CCC",
"Plant": "P011",
"PlantDesc": "OFS Plant 1",
"SalesOrg": "EP11",
"SalesOrgDesc": "OFS SALES ORG 1",
"SalesTaxServices": "DDD",
"State": "Georgia",
"StateCode": "GA",
"TurnKey": "EEE",
"Well": "Ranger Supplies",
"WellDepth": "FFF",
"WellNo": "0000100000"
}
}
},
{
requestUri: "$1/NavBillableItem",
method: "POST",
data: {
"ItemId": "ACIDT3",
"ItemDesc": "ACID TANK (3 DAY MIN)",
"ShortDesc": "ACID TANK (3 DAY MIN)",

"Uom": "EA",
"BillingQty": "1.000",
"Price": "100.000",
"Amount": "100.000",
"PriceDate": "\/Date(1198908717056)\/",
"CustomerShortCode": "RE4",
"CustShortCodeDesc": "Test Short Code 4",
"Function": "M11",
"FunctionDesc": "Rig Services"
}
}
]
}
]
};
*/
var params = {
__batchRequests: [{
__changeRequests: [{
requestUri: getEndPointURL() + "/ServiceOrderSet",
method: "POST",
headers: {},
data: {
"OrderNumber": "1000040",
"OrderDesc": "Test Order Short Desc",
"Status": "In-Progress",
"ChangedOn": "\/Date(1198908717056)\/",
"ChangedAt": "PT06H34M19S",
"CreatedOn": "\/Date(1198908717056)\/",
"Customer": "Customer Services",
"Well": "Customer Services",
"NavJobHeader": {
"OrderNumber": "1000040",
"Address": "225 PO BOX 100000, A225",
"Api": "PO BOX 100000",
"BillTo": "Test",
"BillToName": "Name",
"BidPrice": "20",
"CostCenter": "20",
"CostCenterDesc": "Trial",
"County": "India",
"CreatedOn": "\/Date(1198908717056)\/",
"CustShortCodeDesc": "Group1",
"Customer": "Ranger Supplies",
"CustomerNo": "0000100000",
"CustomerShortCode": "AAA",
"EquipmentDesc": "BBB",
"EquipmentNo": "000000000010000001",
"Function": "M12",
"FunctionDesc": "Transportation",
"JobDescription": "Service Standard Material",
"Latitude": "225",
"Lease": "Main Street",
"Longitude": "A225",
"Pad": "CCC",
"Plant": "P011",
"PlantDesc": "OFS Plant 1",
"SalesOrg": "EP11",
"SalesOrgDesc": "OFS SALES ORG 1",

"SalesTaxServices": "DDD",
"State": "Georgia",
"StateCode": "GA",
"TurnKey": "EEE",
"Well": "Ranger Supplies",
"WellDepth": "FFF",
"WellNo": "0000100000"
}
}
},
{
requestUri: "ServiceOrderSet('1000040')/NavBillableItem",
method: "POST",
data: {
"ItemId": "CNJ101",
"ItemDesc": "Service Standard Material",
"ShortDesc": "Service Standard Material",
"Uom": "H",
"BillingQty": "1.000",
"Price": "150.000",
"Amount": "150.000",
"PriceDate": "\/Date(1198908717056)\/",
"CustomerShortCode": "RE4",
"CustShortCodeDesc": "Test Short Code 4",
"Function": "M11",
"FunctionDesc": "Rig Services"
}
},
{
requestUri: "ServiceOrderSet('1000040')/NavBillableItem",
method: "POST",
data: {
"ItemId": "ACIDT3",
"ItemDesc": "ACID TANK (3 DAY MIN)",
"ShortDesc": "ACID TANK (3 DAY MIN)",
"Uom": "EA",
"BillingQty": "1.000",
"Price": "100.000",
"Amount": "100.000",
"PriceDate": "\/Date(1198908717056)\/",
"CustomerShortCode": "RE4",
"CustShortCodeDesc": "Test Short Code 4",
"Function": "M11",
"FunctionDesc": "Rig Services"
}
}
]
}
]
};
/*
var params = {
__batchRequests: [{
__changeRequests: [{
requestUri: getEndPointURL() + "/ServiceOrderSet",
method: "POST",
headers: {},
data: {
"OrderNumber": "1000040",

"OrderDesc": "Test Order Short Desc",


"Status": "In-Progress",
"ChangedOn": "\/Date(1198908717056)\/",
"ChangedAt": "PT06H34M19S",
"CreatedOn": "\/Date(1198908717056)\/",
"Customer": "Customer Services",
"Well": "Customer Services",
"NavJobHeader": {
"OrderNumber": "1000040",
"Address": "225 PO BOX 100000, A225",
"Api": "PO BOX 100000",
"BillTo": "Test",
"BillToName": "Name",
"BidPrice": "20",
"CostCenter": "20",
"CostCenterDesc": "Trial",
"County": "India",
"CreatedOn": "\/Date(1198908717056)\/",
"CustShortCodeDesc": "Group1",
"Customer": "Ranger Supplies",
"CustomerNo": "0000100000",
"CustomerShortCode": "AAA",
"EquipmentDesc": "BBB",
"EquipmentNo": "000000000010000001",
"Function": "M12",
"FunctionDesc": "Transportation",
"JobDescription": "Service Standard Material",
"Latitude": "225",
"Lease": "Main Street",
"Longitude": "A225",
"Pad": "CCC",
"Plant": "P011",
"PlantDesc": "OFS Plant 1",
"SalesOrg": "EP11",
"SalesOrgDesc": "OFS SALES ORG 1",
"SalesTaxServices": "DDD",
"State": "Georgia",
"StateCode": "GA",
"TurnKey": "EEE",
"Well": "Ranger Supplies",
"WellDepth": "FFF",
"WellNo": "0000100000"
}
}
}]
}]
};
*/
oHeaders['Authorization'] = authStr;
var request = {
headers: oHeaders,
requestUri: getEndPointURL() + "/$batch",
method: "POST",
data: params
};

OData.request(request, responseCallback, errorCallback, OData.batchHandl


er);
}
function responseCallback(data, response) {
console.log("Batch response length: " + data.__batchResponses.length);
console.log("Data responses : " + data.__batchResponses)
debugger;
var changeResponses = data.__batchResponses[0].__changeResponses;
console.log("Change Response : " + changeResponses);

//
//
}

//Sends pending modification requests to the server.


function flushStore() {
if (!store) {
updateStatus2("The store must be open before it can be flushed");
return;
}
startTime = new Date();
updateStatus2("store.flush called");
store.flush(flushStoreSuccessCallback, errorCallback);
}
function flushStoreSuccessCallback() {
var endTime = new Date();
var duration = (endTime - startTime) / 1000;
updateStatus2("Store flushed in " + duration + " seconds");
}
//After calling this the store will receive any changes from the OData produ
cer.
function refreshStore() {
if (!store) {
updateStatus2("The store must be open before it can be refreshed");
return;
}
startTime = new Date();
updateStatus2("store.refresh called");
store.refresh(refreshStoreCallback, errorCallback);
}
function refreshStoreCallback() {
var endTime = new Date();
var duration = (endTime - startTime) / 1000;
updateStatus2("Store refreshed in " + duration + " seconds");
}

document.addEventListener("deviceready", init, false);


document.addEventListener("online", deviceOnline, false);
document.addEventListener("offline", deviceOffline, false);
</script>
</head>
<body onload="updateStatus1('');">
<h1>Offline OData Sample</h1>
<button id="register" onclick="register()">Register</button>
<button id="unregister" onclick="unRegister()">Unregister</button>

<button
<button
<button
<button

id="read" onclick="read()">Read</button><br>
id="openStore" onclick="openStore()">Open Offline Store</button>
id="closeStore" onclick="closeStore()">Close Offline Store</button>
id="clearStore" onclick="clearStore()">Clear Offline Store</button><

br>
<button id="batchRequest" onclick="batchRequest()">Batch request - Insert</b
utton><br>
<button id="flushStore" onclick="flushStore()">Flush Store</button>
<button id="refreshStore" onclick="refreshStore()">Refresh Store</button>
<span id="statusID"></span><br>
<span id="statusID2"></span>
<table id="CategoriesTable"><tr><th align="left">OrderNumber</th><th align="
left">OrderDesc</th><th align="left">Status</th></tr></table>
<table id="ProductsTable"><tr><th align="left">OrderNumber</th><th align="le
ft">ItemId</th><th align="left">Price</th></tr></table>
</body>
</html>
<!-<html>
<head>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script src="datajs-1.1.2.min.js"></script>
<script src="scripts/index.js"></script>
<script src="scripts/platformOverrides.js"></script>
<script>
var appId = "com.sap.batch"; // Change this to app id on server
var applicationContext = null;
var smpServerProtocol = "https";
var smpServerHost = "hcpms-p1941799502trial.hanatrial.ondemand.com";
var smpServerPort = "443";
var authStr = "";
var store = null; //Offline OData store
var startTime = null;
var online = navigator.onLine;
// Optional initial connection context
var context = {
"serverHost": smpServerHost, //Place your SMP 3.0 server name here
"https": smpServerProtocol == "https",
"serverPort": smpServerPort,
"user": "milton"
};
window.onerror = onError;
function onError(msg, url, line) {
var idx = url.lastIndexOf("/");
var file = "unknown";
if (idx > -1) {
file = url.substring(idx + 1);
}
alert("An error occurred in " + file + " (at line # " + line + "): " + m
sg);
return false; //suppressErrorAlert;
}
function init() {

if (sap.Logger) {
sap.Logger.setLogLevel(sap.Logger.DEBUG); //enables the display of
debug log messages from the Kapsel plugins.
sap.Logger.debug("Log level set to DEBUG");
}
register()
console.log("init completed");
}
function register() {
updateStatus2("register called");
sap.Logon.init(logonSuccessCallback, logonErrorCallback, appId, context)
;
}
function logonSuccessCallback(result) {
console.log("logonSuccessCallback " + JSON.stringify(result));
updateStatus2("Successfully REGISTERED");
applicationContext = result;
//alternatively the authproxy and logon plugincan provide this if SAPKap
selHandleHttpRequests=true, (it is by default on iOS)
authStr = "Basic " + btoa(applicationContext.registrationContext.user +
":" + applicationContext.registrationContext.password);
}
function logonErrorCallback(error) { //this method is called if the user c
ancels the registration.
console.log("An error occurred: " + JSON.stringify(error));
if (device.platform == "Android") { //Not supported on iOS
navigator.app.exitApp();
}
}
function unRegister() {
updateStatus2("unregister called");
sap.Logon.core.deleteRegistration(logonUnregisterSuccessCallback, errorC
allback);
clearTable();
}
function logonUnregisterSuccessCallback(result) {
updateStatus2("Successfully UNREGISTERED");
console.log("logonUnregisterSuccessCallback " + JSON.stringify(result));
applicationContext = null;
}
function errorCallback(e) {
// alert("An error occurred " + JSON.stringify(e));
var msg = new Windows.UI.Popups.MessageDialog("An error occurred " +
JSON.stringify(e));
msg.showAsync();
console.log("An error occurred " + JSON.stringify(e));
updateStatus1("");
}
function read() {
updateStatus2("read request started");
startTime = new Date();

clearTable();
if (!haveAppId()) {
return;
}
var sURL = applicationContext.applicationEndpointURL + "/SalesOrderSet?$
orderby=SalesOrderID desc";
var oHeaders = {};
oHeaders['Authorization'] = authStr;
//oHeaders['X-SMP-APPCID'] = applicationContext.applicationConnectionId;
//this header is provided by the logon plugin
var request = {
headers : oHeaders,
requestUri : sURL,
method : "GET"
};
console.log("read using " + sURL);
OData.read(request, readSuccessCallback, errorCallback);
}
function readSuccessCallback(data, response) {
var endTime = new Date();
var duration = (endTime - startTime)/1000;
updateStatus2("Read " + data.results.length + " records in " + duration
+ " seconds");
var productsTable = document.getElementById("ProductsTable");
for (var i = 0; i < data.results.length; i++) {
var row = productsTable.insertRow(1);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
cell1.innerHTML = data.results[i].SalesOrderID;
cell2.innerHTML = data.results[i].Note;
cell3.innerHTML = data.results[i].CustomerName;
}
}
function clearTable() {
var productsTable = document.getElementById("ProductsTable");
while(productsTable.rows.length > 1) {
productsTable.deleteRow(1);
}
}
function openStore() {
if (!haveAppId()) {
return;
}
startTime = new Date();
updateStatus2("store.open called");
var properties = {
"name": "ProductsOfflineStore",
"host": applicationContext.registrationContext.serverHost,
"port": applicationContext.registrationContext.serverPort,
"https": applicationContext.registrationContext.https,
"serviceRoot" : appId,
"definingRequests" : {

"ProductsDR": "/SalesOrderSet",
"CategoriesDR": "/SalesOrderLineItemSet"
}
};
store = sap.OData.createOfflineStore(properties);
//var options = {};
store.open(openStoreSuccessCallback, errorCallback/*, options*/);
}
function openStoreSuccessCallback() {
var endTime = new Date();
var duration = (endTime - startTime)/1000;
updateStatus2("Store opened in " + duration + " seconds");
updateStatus1("Store is OPEN.");
sap.OData.applyHttpClient(); //Offline OData calls can now be made agai
nst datajs.
}
function closeStore() {
if (!store) {
updateStatus2("The store must be opened before it can be closed");
return;
}
startTime = new Date();
updateStatus2("store.close called");
store.close(closeStoreSuccessCallback, errorCallback);
}
function closeStoreSuccessCallback() {
sap.OData.removeHttpClient();
var endTime = new Date();
var duration = (endTime - startTime)/1000;
updateStatus1("Store is CLOSED.");
updateStatus2("Store closed in " + duration + " seconds");
}
//Removes the physical store from the filesystem
function clearStore() {
if (!store) {
updateStatus2("The store must be closed before it can be cleared");
return;
}
store.clear(clearStoreSuccessCallback, errorCallback);
}
function clearStoreSuccessCallback() {
updateStatus1("");
updateStatus2("Store is CLEARED");
store = null;
}
function haveAppId() {
if (!applicationContext) {
alert("Please register with the SMP Server before proceeding");
return false;
}
return true;
}

function updateStatus1(msg) {
document.getElementById('statusID').innerHTML = msg + " " + getDeviceSta
tusString();
console.log(msg + " " + getDeviceStatusString());
}
function updateStatus2(msg) {
var d = new Date();
document.getElementById('statusID2').innerHTML = msg + " at " + addZero(
d.getHours()) + ":" + addZero(d.getMinutes()) + "." + addZero(d.getSeconds());
console.log(msg + " at " + addZero(d.getHours()) + ":" + addZero(d.getMi
nutes()) + "." + addZero(d.getSeconds()));
}
function addZero(input) {
if (input < 10) {
return "0" + input;
}
return input;
}
function getDeviceStatusString() {
if (online) {
return "Device is ONLINE";
}
else {
return "Device is OFFLINE";
}
}
function deviceOnline() {
online = true;
updateStatus1("");
}
function deviceOffline() {
online = false;
updateStatus1("");
}
function getEndPointURL() {
return applicationContext.applicationEndpointURL;
}
function batchRequest() {
var oHeaders = {
};
var params = {
__batchRequests: [{
__changeRequests: [{
requestUri: getEndPointURL() + "/SalesOrderSet",
method: "POST",
headers: {
"Content-ID": "1"
},
data: {
"SalesOrderID": "0600000000",
"Note": "EPM DG: SO ID 0500000019 Deliver as fast as pos

sible",
"CustomerID": "0100000009",
"CustomerName": "Telecomunicaciones Star"
}
},
{
requestUri: "SalesOrderSet('0600000000')/ToLineItems",
method: "POST",
data: {
"SalesOrderID": "0600000000",
"ItemPosition": "0000000010",
"ProductID": "HT-1000",
"DeliveryDate": "\/Date(1198908717056)\/",
"Quantity": 3.5
}
}
]
}
]
};
oHeaders['Authorization'] = authStr;
var request = {
headers: oHeaders,
requestUri: getEndPointURL() + "/$batch",
method: "POST",
data: params
};
OData.request(request, responseCallback, errorCallback, OData.batchHandl
er);
}
function responseCallback(data, response) {
console.log("Batch response length: " + data.__batchResponses.length);
var changeResponses = data.__batchResponses[0].__changeResponses;
// console.log("Change Response length: " + changeResponses.length);
}
//Sends pending modification requests to the server.
function flushStore() {
if (!store) {
updateStatus2("The store must be open before it can be flushed");
return;
}
startTime = new Date();
updateStatus2("store.flush called");
store.flush(flushStoreSuccessCallback, errorCallback);
}
function flushStoreSuccessCallback() {
var endTime = new Date();
var duration = (endTime - startTime) / 1000;
updateStatus2("Store flushed in " + duration + " seconds");
}
//After calling this the store will receive any changes from the OData produ

cer.
function refreshStore() {
if (!store) {
updateStatus2("The store must be open before it can be refreshed");
return;
}
startTime = new Date();
updateStatus2("store.refresh called");
store.refresh(refreshStoreCallback, errorCallback);
}
function refreshStoreCallback() {
var endTime = new Date();
var duration = (endTime - startTime) / 1000;
updateStatus2("Store refreshed in " + duration + " seconds");
}

document.addEventListener("deviceready", init, false);


document.addEventListener("online", deviceOnline, false);
document.addEventListener("offline", deviceOffline, false);
</script>
</head>
<body onload="updateStatus1('');">
<h1>Offline OData Sample</h1>
<button id="register" onclick="register()">Register</button>
<button id="unregister" onclick="unRegister()">Unregister</button>
<button id="read" onclick="read()">Read</button><br>
<button id="openStore" onclick="openStore()">Open Offline Store</button>
<button id="closeStore" onclick="closeStore()">Close Offline Store</button>
<button id="clearStore" onclick="clearStore()">Clear Offline Store</button><
br>
<button id="batchRequest" onclick="batchRequest()">Batch request - Insert</b
utton><br>
<button id="flushStore" onclick="flushStore()">Flush Store</button>
<button id="refreshStore" onclick="refreshStore()">Refresh Store</button>
<span id="statusID"></span><br>
<span id="statusID2"></span>
<table id="ProductsTable"><tr><th align="left">Name</th><th align="left">Des
cription</th><th align="left">Price</th></tr></table>
</body>
</html>
-->

S-ar putea să vă placă și