Tuesday, September 25, 2018

SP.Service Query To SharePoint Nested Example

SP.service nested Example
--------------------------------

var RequestId = 0;
$(document).ready(function(){


SP.SOD.executeFunc('sp.js', SP.ClientContext, fn_getModuleCategoriesMatrix);
var loaded = 0;
    function fn_LoadNewContext() {
        context = new SP.ClientContext("/sites/coo/");
        web = context.get_web();
        CurrentUserName = $().SPServices.SPGetCurrentUser({fieldName: "Title",debug: false});
}
//
$(".ms-dlgOverlay").show();
function fn_getModuleCategoriesMatrix()
{
try
{
if(loaded == 0)
{
$().SPServices({
operation: "GetListItems",
async: false,
listName: "BU",
completefunc: function (xModules, moduleStatus)
{
if($(xModules.responseXML).SPFilterNode("z:row").length > 0)
{ var changeBuflag = 0;
$(xModules.responseXML).SPFilterNode("z:row").each(function()
{
var BU = $(this).attr("ows_Title");
var BUId = $(this).attr("ows_ID");

$().SPServices({
operation: "GetListItems",
async: false,
listName: "SubSegment",
CAMLQuery:"<Query><Where><Contains><FieldRef Name='BU' /><Value Type='Text'>"+BU +"</Value></Contains></Where></Query>",
completefunc: function (xCategories, categoriesStatus)
{
if($(xCategories.responseXML).SPFilterNode("z:row").length > 0)
{
$(xCategories.responseXML).SPFilterNode("z:row").each(function(){
var SubSegment = $(this).attr("ows_Title");
var SubSegmentId = $(this).attr("ows_ID");

$().SPServices({
operation: "GetListItems",
async: false,
listName: "Product",
CAMLQuery:"<Query><Where><Contains><FieldRef Name='SubSegment' /><Value Type='Text'>"+SubSegment+"</Value></Contains></Where></Query>",
completefunc: function (xProducts, productsStatus)
{
$(xProducts.responseXML).SPFilterNode("z:row").each(function(){
var Product = $(this).attr("ows_Title");
var ProductId = $(this).attr("ows_ID");
var Configuration = $(this).attr("ows_Configuration");
var ListOfApprovers = $(this).attr("ows_ListOfApprovers").split("#");
var SecondaryApprovers = $(this).attr("ows_SecondaryApprovers").split("#");
var sysListOfApprovers = $(this).attr("ows_ListOfApprovers");
var IsActive = $(this).attr("ows_IsActive");

///////////// For primary Approvers//////////
if(IsActive == 1)
{


var listApprovers="", item=0;

for(item = 1;item < ListOfApprovers.length;item = item+2)
{
if(listApprovers == "")
{
listApprovers += ListOfApprovers[item];
}
else
{
listApprovers += " &nbsp;"+ListOfApprovers[item];
}
}
                                 
                                   var approvers = listApprovers.split(" &nbsp;").join('');
                                   var formattedapprovers= approvers.replace(/'/g, "&#39;");

                                 //////////////////For secondary Approvers ///////////
                                 
                                 if(IsActive == 1)
{
var secApprovers="", index=0;
for(index = 1;index < SecondaryApprovers.length;index = index+2)
{
if(secApprovers == "")
{
secApprovers += SecondaryApprovers[index];
}
else
{
secApprovers += " &nbsp;"+SecondaryApprovers[index];
}

}


                                   }
                                 
var secondapprs = secApprovers.split(" &nbsp;").join('');
                                   var formattedsecapprovers= secondapprs.replace(/'/g, "&#39;");

                                 

var rowClass="";

if(changeBuflag == 0)
rowClass = "oddRow";
else
rowClass = "evenRow";

var trString= "<tr class='"+rowClass +"'>";

if(BU.trim()!="")
trString= "<tr class='"+rowClass +"' style='border-top:1px #bdbdbd solid;'>";

trString += "<td><nobr>"+BU +"</nobr></td><td><nobr>"+SubSegment +"</nobr></td><td><nobr>"+Product +"</nobr></td><td>"+Configuration +"</td>";

trString += "<td align='center'><input type='checkbox' id='chk_"+BUId+"_"+SubSegmentId+"_"+ProductId+"' productId='"+ ProductId +"' approvers='"+formattedapprovers+"' secapprovers='"+formattedsecapprovers+"'/>  </td>";

trString += "<td><nobr>"+listApprovers +"</nobr></td>";
trString += "</tr>";
BU ="";
SubSegment = "";
$("#tblRequestAccessMain").append(trString);
}
});
}
});
});
}
}
});
if(changeBuflag ==0)
{
changeBuflag = 1;
}
else
{
changeBuflag = 0;
}
});
}
}
});
        $(".ms-dlgOverlay").hide();


loaded = 1;
}
}
catch(err)
{
        $(".ms-dlgOverlay").hide();
}
}



////////////// Creating New Item in Request Master List/////////////









var tblRequestAccessMain= $("#tblRequestAccessMain");
var checkedProducts =[];
var checkedBU = [];
var checkedSubSegments = [];
var checkedApprovers = [];
var checkedProductNames = [];
var checkedConfiguration =[];
var checkedSecApprovers =[];
var itemIndex = 0;
var Reason ="";
var status = "Pending";





function submitrequest(){

        Reason = $("#txtReasonForRequestAccess").val();
var tblRequestAccessMain = $("#tblRequestAccessMain");

var rowIndex, row, BU, SubSegment, Product, Configuration;
var itemChecked = false;
checkedProducts =[];
for(rowIndex = 2; rowIndex<tblRequestAccessMain[0].rows.length; rowIndex++)
{
row = tblRequestAccessMain[0].rows[rowIndex];

if(row.cells[0].innerText.trim()!="")
BU = row.cells[0].innerText;

if(row.cells[1].innerText.trim()!="")
SubSegment = row.cells[1].innerText;

Product = row.cells[2].innerText;
Configuration = row.cells[3].innerText;

var cellAccess = row.cells[4];

var chkAccess = cellAccess.children[0];

if(chkAccess.checked==true)
{
itemChecked = true;
checkedProducts.push(chkAccess.getAttribute("productid"));
Product
checkedBU.push(BU);
checkedSubSegments.push(SubSegment);
checkedConfiguration.push(Configuration);
checkedApprovers.push(chkAccess.getAttribute("approvers"));
checkedSecApprovers.push(chkAccess.getAttribute("secapprovers"));
checkedProductNames.push(Product);

}
}


if(itemChecked!=true && Reason!="")
{
$(".ms-dlgOverlay").hide();
alert("Please select atleast one product to send access request.")
return false;
}

if(itemChecked==true && Reason=="")
{
$(".ms-dlgOverlay").hide();
alert("Please specify role, organization, manager, and reason for request.")
return false;
}

if(itemChecked!=true && Reason=="")
{
$(".ms-dlgOverlay").hide();
alert("Please select atleast one product and specify reason to send access request.")
return false;
}




   var message ="Access request sent succesfully for:\n";
   var errormessage ="Request already pending for the following items,\n";
var count =0;
   var bu;
   var product;
   var subsegment;
   var approvers;
   var secapprovers
   var name;
var configuration;
 
for(var itemIndex = 0; itemIndex < checkedProducts.length;itemIndex++)
   {
 
    bu = checkedBU[itemIndex];
    product = checkedProductNames[itemIndex];
    subsegment = checkedSubSegments[itemIndex];
    configuration = checkedConfiguration[itemIndex];
   
    name;
 
 
 
    $().SPServices({
operation: "GetListItems",
async: false,
listName: "poc",
CAMLQuery:"<Query><Where><And><And><And><Eq><FieldRef Name='RequestedBy'/><Value Type='Text'>"+CurrentUserName+"</Value></Eq><Eq><FieldRef Name='Product'/><Value Type='Text'>"+product+"</Value></Eq></And><Eq><FieldRef Name='Configuration'/><Value Type='Text'>"+configuration+"</Value></Eq></And><Eq><FieldRef Name='status'/><Value Type='Text'>"+status+"</Value></Eq></And></Where></Query>",

completefunc: function (xData, Status)
{
if($(xData.responseXML).SPFilterNode("z:row").length>0)
       
{
errormessage += bu+ "-->"+subsegment+"-->"+product+"-->"+configuration+"\n";
count++;


}
}
 
});
   
   }
if (count > 0)
{

$(".ms-dlgOverlay").hide();
alert(errormessage);

 tblRequestAccessMain;
checkedProducts =[];
checkedBU = [];
checkedSubSegments = [];
checkedApprovers = [];
checkedProductNames = [];
checkedConfiguration =[];
    checkedSecApprovers =[];


return false;
}

else {

 
for(var Index = 0; Index < checkedProducts.length;Index++)
   {
 
    bu = checkedBU[Index];
    product = checkedProductNames[Index];
    subsegment = checkedSubSegments[Index];
    approvers = checkedApprovers[Index];
    configuration = checkedConfiguration[Index];
    secapprovers = checkedSecApprovers[Index];
    name;
 
 
    $().SPServices({
            operation: "UpdateListItems",
            async: false,
            batchCmd: "New",
            listName: "poc",
            valuepairs: [["BU", bu],["Reason",Reason],["ListofApprovers" , approvers],["SubSegment" , subsegment],["Product" , product],["status" , status],["RequestedBy",CurrentUserName],["Configuration",configuration],["SecondaryApprovers",secapprovers]],
            completefunc: function (xData, Status) {
                message += bu+ "-->"+subsegment+"-->"+product+"-->"+configuration+"\n";
               
            }
         
        });

   
   }

alert(message);
window.location.href = window.location.href;
}

}



$(".btnRequest").click(function(){
$(".ms-dlgOverlay").show();
//pausecomp(10000);
submitrequest();

});




function pausecomp(millis)
{
  var date = new Date();
  var curDate = null;
  do { curDate = new Date(); }
  while(curDate-date < millis);
}
});










No comments:

Post a Comment