Method PostCreateReqLineItem2

Summary

Create Requisition Line Item

Remarks

Allows the creation of a requisition line item record, files PI620AP and PI650AP. Limited edits are enforced during the line creation. The requisition status will be updated to (2 = NEEDS ADDITIONAL INFORMATION). This forces the user of the system to go thru the existing requisition process to approve and verify that all information is correct.

Requires

Input Parameters

NameTypeLengthDescription
action System.String 1 [Required] Action: A=create, U=update, C=cancel, Defaults to U
reqNumber System.String 30 [Required] Requisition Number
commodityCode System.String 3 [Required] Commodity Code
subCommodityCode System.String 3 [Required] Sub-commodity code
itemQuantity System.String 9 [Required] Item Quantity. Numeric right justified zero filled. 2 decimal positions assumed. 00056789 = 567.89
itemNumber System.String 5 Item Number
itemDesc System.String 50 Item Description
vendorPartNumber System.String 20 Vendor Part Number
itemUnitOfMeasure System.String 3 [Required] Item Unit of Measure Code
itemCost System.String 11 [Required] Item Cost. Numeric right justified zero filled. 4 decimal positions assumed. 00000632951 = 63.2951
accountNumber System.String 50 Account Number
projectNumber System.String 6 Project Number
fleetCostCode System.String 2 Fleet Cost Code
fleetEquipNum System.String 5 Fleet Equipment Number
fleetJobNum System.String 7 Fleet Job Number
fleetJobRepairNum System.String 5 Fleet Job Repair Number
fleetWorkOrderNum System.String 9 Fleet Work Order Number
fleetWorkOrderJobNum System.String 3 Fleet Work Order Job Number
returnCredit System.String 1 Return Credit. Ignored for action code ā€œCā€. Y = indicates a return or credit line item. Blanks = indicates a regular positive line item. Any other value = indicates a regular positive line item.All amounts sent in thru the i_qty field will be positive numbers.When i_rtrncred is ā€œYā€ we will convert to a negative number in NaviLine.
shipToCode System.String 2 [Required] Ship To Code

Example

POST http://localhost/FusionServices/v2/Naviline/ProductInventory/CreateReqLineItem2

Return Values

NameDescription
ErrorCode 0000 = Success.
ErrorDescription Success if success, otherwise returns a descriptive error message.
RequisitionLineNumber Requisition line number

Sample Responses

Sample Code

using System.Net;
using Newtonsoft.Json.Linq;

public void MethodName(parms)
{
   string uri = "http://localhost/FusionServices/v2/Naviline/ProductInventory/CreateReqLineItem2";
   System.Collections.Specialized.NameValueCollection postParms = 
     new System.Collections.Specialized.NameValueCollection(); 
   // Set paramater values
   postParms.Add("action",System.Web.HttpUtility.UrlEncode("A"));
   postParms.Add("reqNumber",System.Web.HttpUtility.UrlEncode("0000018638"));
   postParms.Add("commodityCode",System.Web.HttpUtility.UrlEncode("JRH"));
   postParms.Add("subCommodityCode",System.Web.HttpUtility.UrlEncode("JRH"));
   postParms.Add("shipToCode",System.Web.HttpUtility.UrlEncode("RH"));
   postParms.Add("itemQuantity",System.Web.HttpUtility.UrlEncode("000001234"));
   postParms.Add("itemUnitOfMeasure",System.Web.HttpUtility.UrlEncode("EA"));
   postParms.Add("itemCost",System.Web.HttpUtility.UrlEncode("00000632951"));
   postParms.Add("returnCredit",System.Web.HttpUtility.UrlEncode("Y"));

   WebClient req = new WebClient();
   wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
   wc.Headers.Set("X-APPID", "YOURID");
   wc.Headers.Set("X-APPKEY", "YOURKEY");

   byte[] responseBytes = wc.UploadValues(new Uri(uri), "POST", postParms);
   string stringResult = Encoding.UTF8.GetString(responseBytes); 
   JObject response = JObject.Parse(stringResult);
   string error = response["OutputParms"]["ErrorCode"].ToString();
   if (error == "0000")
   {
         // TODO - YOUR CODE HERE
   }
}

C# Razor MVC Sample Code

using System;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Collections.Specialized;
using FusionServiceHelper.Models;

// NOTE: Use the namespace generated when you add the class, so that it is correct.
namespace FusionRazor.Models
{
   public class PostCreateReqLineItem2
   {
       // Add property for each input param in order to map a field to it
       [Required(ErrorMessage = "Required")]
       [RegularExpression("^(?=.{0,1}$).*", ErrorMessage = "Must be 1 characters or less. ")]
       public string action{get; set;}

       [Required(ErrorMessage = "Required")]
       [RegularExpression("^(?=.{0,30}$).*", ErrorMessage = "Must be 30 characters or less. ")]
       public string reqNumber{get; set;}

       [Required(ErrorMessage = "Required")]
       [RegularExpression("^(?=.{0,3}$).*", ErrorMessage = "Must be 3 characters or less. ")]
       public string commodityCode{get; set;}

       [Required(ErrorMessage = "Required")]
       [RegularExpression("^(?=.{0,3}$).*", ErrorMessage = "Must be 3 characters or less. ")]
       public string subCommodityCode{get; set;}

       [Required(ErrorMessage = "Required")]
       [RegularExpression("^(?=.{0,9}$).*", ErrorMessage = "Must be 9 characters or less. ")]
       public string itemQuantity{get; set;}

       [RegularExpression("^(?=.{0,5}$).*", ErrorMessage = "Must be 5 characters or less. ")]
       public string itemNumber{get; set;}

       [RegularExpression("^(?=.{0,50}$).*", ErrorMessage = "Must be 50 characters or less. ")]
       public string itemDesc{get; set;}

       [RegularExpression("^(?=.{0,20}$).*", ErrorMessage = "Must be 20 characters or less. ")]
       public string vendorPartNumber{get; set;}

       [Required(ErrorMessage = "Required")]
       [RegularExpression("^(?=.{0,3}$).*", ErrorMessage = "Must be 3 characters or less. ")]
       public string itemUnitOfMeasure{get; set;}

       [Required(ErrorMessage = "Required")]
       [RegularExpression("^(?=.{0,11}$).*", ErrorMessage = "Must be 11 characters or less. ")]
       public string itemCost{get; set;}

       [RegularExpression("^(?=.{0,50}$).*", ErrorMessage = "Must be 50 characters or less. ")]
       public string accountNumber{get; set;}

       [RegularExpression("^(?=.{0,6}$).*", ErrorMessage = "Must be 6 characters or less. ")]
       public string projectNumber{get; set;}

       [RegularExpression("^(?=.{0,2}$).*", ErrorMessage = "Must be 2 characters or less. ")]
       public string fleetCostCode{get; set;}

       [RegularExpression("^(?=.{0,5}$).*", ErrorMessage = "Must be 5 characters or less. ")]
       public string fleetEquipNum{get; set;}

       [RegularExpression("^(?=.{0,7}$).*", ErrorMessage = "Must be 7 characters or less. ")]
       public string fleetJobNum{get; set;}

       [RegularExpression("^(?=.{0,5}$).*", ErrorMessage = "Must be 5 characters or less. ")]
       public string fleetJobRepairNum{get; set;}

       [RegularExpression("^(?=.{0,9}$).*", ErrorMessage = "Must be 9 characters or less. ")]
       public string fleetWorkOrderNum{get; set;}

       [RegularExpression("^(?=.{0,3}$).*", ErrorMessage = "Must be 3 characters or less. ")]
       public string fleetWorkOrderJobNum{get; set;}

       [RegularExpression("^(?=.{0,1}$).*", ErrorMessage = "Must be 1 characters or less. ")]
       public string returnCredit{get; set;}

       [Required(ErrorMessage = "Required")]
       [RegularExpression("^(?=.{0,2}$).*", ErrorMessage = "Must be 2 characters or less. ")]
       public string shipToCode{get; set;}

       public PostCreateReqLineItem2()
       {
           //Set any defaults here
       }
   }
}
@* NOTE: Use Add->View to add the View. *@
@* NOTE: Check the 'Create strongly-typed view checkbox, and select the PostCreateReqLineItem2 class. *@
@* NOTE: Select Edit as the Scaffold template. *@
@* NOTE: Use the @model line that is generated at the top.  Replace the rest with the lines below.
@model FusionRazor.Models.PostCreateReqLineItem2

@{
   ViewBag.Title = "PostCreateReqLineItem2";
}

<h2>PostCreateReqLineItem2</h2>
@using (Html.BeginForm()) {
   @Html.AntiForgeryToken()
   @Html.ValidationSummary(true)
   <fieldset>
   <legend>PostCreateReqLineItem2</legend>
       <div class="editor-label">
           @Html.LabelFor(model => model.action)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.action)
           @Html.ValidationMessageFor(model => model.action)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.reqNumber)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.reqNumber)
           @Html.ValidationMessageFor(model => model.reqNumber)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.commodityCode)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.commodityCode)
           @Html.ValidationMessageFor(model => model.commodityCode)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.subCommodityCode)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.subCommodityCode)
           @Html.ValidationMessageFor(model => model.subCommodityCode)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.itemQuantity)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.itemQuantity)
           @Html.ValidationMessageFor(model => model.itemQuantity)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.itemNumber)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.itemNumber)
           @Html.ValidationMessageFor(model => model.itemNumber)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.itemDesc)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.itemDesc)
           @Html.ValidationMessageFor(model => model.itemDesc)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.vendorPartNumber)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.vendorPartNumber)
           @Html.ValidationMessageFor(model => model.vendorPartNumber)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.itemUnitOfMeasure)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.itemUnitOfMeasure)
           @Html.ValidationMessageFor(model => model.itemUnitOfMeasure)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.itemCost)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.itemCost)
           @Html.ValidationMessageFor(model => model.itemCost)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.accountNumber)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.accountNumber)
           @Html.ValidationMessageFor(model => model.accountNumber)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.projectNumber)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.projectNumber)
           @Html.ValidationMessageFor(model => model.projectNumber)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.fleetCostCode)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.fleetCostCode)
           @Html.ValidationMessageFor(model => model.fleetCostCode)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.fleetEquipNum)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.fleetEquipNum)
           @Html.ValidationMessageFor(model => model.fleetEquipNum)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.fleetJobNum)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.fleetJobNum)
           @Html.ValidationMessageFor(model => model.fleetJobNum)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.fleetJobRepairNum)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.fleetJobRepairNum)
           @Html.ValidationMessageFor(model => model.fleetJobRepairNum)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.fleetWorkOrderNum)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.fleetWorkOrderNum)
           @Html.ValidationMessageFor(model => model.fleetWorkOrderNum)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.fleetWorkOrderJobNum)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.fleetWorkOrderJobNum)
           @Html.ValidationMessageFor(model => model.fleetWorkOrderJobNum)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.returnCredit)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.returnCredit)
           @Html.ValidationMessageFor(model => model.returnCredit)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.shipToCode)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.shipToCode)
           @Html.ValidationMessageFor(model => model.shipToCode)
       </div>
       <p>
       <input type="submit" value="Submit"/>
       </p>
   </fieldset>

}

@section Scripts {
   @Scripts.Render("~/bundles/jqueryval")
}
using System;
using System.Collections.Specialized;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using FusionServiceHelper.Models;

// NOTE: Replace 'MyController' with the name of your controller.

// 
// GET: /MyController/PostCreateReqLineItem2
public ActionResult PostCreateReqLineItem2()
{
   // Create a new instance of the model to pick up any default values.
   PostCreateReqLineItem2 model =  new PostCreateReqLineItem2();

   // pass model to set to default values
   // NOTE: Change 'MyFolderPath' to the path to the .cshtml file.
   return View("~/Views/MyFolderPath/PostCreateReqLineItem2.cshtml", model);
}

// 
// POST: /MyController/PostCreateReqLineItem2
[HttpPost]
public ActionResult PostCreateReqLineItem2(FormCollection collection)
{
   string url = "v2/Naviline/ProductInventory/CreateReqLineItem2";
   // Get the value from each input field
   NameValueCollection inputParms = new NameValueCollection();
   inputParms.Add("action", collection["action"]);
   inputParms.Add("reqNumber", collection["reqNumber"]);
   inputParms.Add("commodityCode", collection["commodityCode"]);
   inputParms.Add("subCommodityCode", collection["subCommodityCode"]);
   inputParms.Add("itemQuantity", collection["itemQuantity"]);
   inputParms.Add("itemNumber", collection["itemNumber"]);
   inputParms.Add("itemDesc", collection["itemDesc"]);
   inputParms.Add("vendorPartNumber", collection["vendorPartNumber"]);
   inputParms.Add("itemUnitOfMeasure", collection["itemUnitOfMeasure"]);
   inputParms.Add("itemCost", collection["itemCost"]);
   inputParms.Add("accountNumber", collection["accountNumber"]);
   inputParms.Add("projectNumber", collection["projectNumber"]);
   inputParms.Add("fleetCostCode", collection["fleetCostCode"]);
   inputParms.Add("fleetEquipNum", collection["fleetEquipNum"]);
   inputParms.Add("fleetJobNum", collection["fleetJobNum"]);
   inputParms.Add("fleetJobRepairNum", collection["fleetJobRepairNum"]);
   inputParms.Add("fleetWorkOrderNum", collection["fleetWorkOrderNum"]);
   inputParms.Add("fleetWorkOrderJobNum", collection["fleetWorkOrderJobNum"]);
   inputParms.Add("returnCredit", collection["returnCredit"]);
   inputParms.Add("shipToCode", collection["shipToCode"]);

   try
   {
       // Send the request
       FusionServiceRequest request = new FusionServiceRequest();
       FusionServiceResult result = request.Post(url, inputParms);

       return View("Result", result);
   }
   catch(Exception e)
   {
       HandleErrorInfo info = new HandleErrorInfo(e, "MyController", "PostCreateReqLineItem2");
       return View("Error", info);
   }
}