2011-01-13 7 views
8

नेट्सुइट के लिए दस्तावेज़ों की काफी कमी है, वे मूलभूत बातें शामिल करते हैं और फिर आपको अन्वेषण करने देते हैं। PHP के विशाल ज्ञान के बिना कोई भी उनके php टूलकिट का उपयोग करने की कोशिश कर रहा है, उसके घुटनों पर दया के लिए भीख मांगेगी।नेटस्वाइट: बिक्री आदेशों के लिए कस्टम फ़ील्ड को कैसे संलग्न करें

इस पूरे प्रोजेक्ट में किसी भी समय यह निशान और त्रुटि है और सामान शुरू होने तक सब कुछ समझने की कोशिश कर रहा है।

मैं बिक्री के आदेशों के लिए कस्टम फ़ील्ड असाइन करने पर स्टंप हूं, मुझे पता है कि इसे किसी ऑब्जेक्ट की ऑब्जेक्ट का ऑब्जेक्ट होना चाहिए ताकि इसे साबुन के लिए एक्सएमएल को नीचे ले जाया जा सके लेकिन इसके साथ क्या होगा क्या?

मेरे पास कुछ कोड है जो मैंने काम किया है जो कहीं और हो रहा है लेकिन यह शिकायत कर रहा है कि यह सही रिकॉर्डरफ प्रकार नहीं है। अगर कोई नेटस्वाइट के साथ काम करता है और मेरा दर्द महसूस करता है तो कृपया मुझे अपने सभी बालों को खींचने से पहले मुझे अपना ज्ञान दें।

अग्रिम धन्यवाद।

कोड:

$customFields = array('internalId' => 'custbody_new_die_yn','value' => array('name' => 'custbody_new_die_yn','internalId' => 'NO')); 
$customObject = new nsComplexObject("SelectCustomFieldRef"); 
$customObject->setFields($customFields); 

$salesOrderFields = array(

    'entity'  => new nsRecordRef(array('internalId' => $userId)), 
    'paymentMethod' => array('internalId' => 8), 
    'ccNumber'  => 4111111111111111, 
    'ccExpireDate' => date("c", mktime(0,0,0,11,1,2011)), 
    'ccName'  => 'Test Testerson', 
    'itemList' => array(
     'item' => array(
      'item'  => array('internalId' => 5963), 
      'quantity' => 5 
     ) 
    ), 
    'department' => new nsRecordRef(array('internalId' => 1)), 
    'class' => new nsRecordRef(array('internalId' => 47)), 
    'customFieldList' => $customObject 
); 
+0

मुझे पता चला है कि एसओएपी प्रश्नों को सही तरीके से कैसे बनाया जाए, यह जानने के लिए मुझे एक्सिस जेनरेट इंटरफ़ेस का उपयोग करके जावा में अपने सभी नेटस्वाइट वेब सेवाओं के इंटरैक्शन को प्रोटोटाइप करना होगा। जावा में काम करने के बाद ही मैं इसे PHP टूलकिट में अनुवाद करने का प्रयास करता हूं। जब भी संभव हो मैं नेटसेट के साथ PHP से बचें। – Craig

उत्तर

11

मैं Netsuite साथ PHP का उपयोग परिचित नहीं हूँ, लेकिन मैं C#/शुद्ध Netsuite काम की अच्छी मात्रा किया है।। जैसा कि क्रेग ने उल्लेख किया है, मुझे नेटस्वाइट सुइटटाक वेब सेवा एपीआई में क्या उपलब्ध है, यह जानने के लिए विजुअल स्टूडियो जेनरेटेड इंटरफेस के साथ ऐसी सी #/नेट की भाषा का उपयोग करना बहुत आसान लगता है।

नेटसुइट सहायता केंद्र में इस सामान के आसपास एक उचित मात्रा में दस्तावेज़ीकरण है - किसी भी तरह से आपको हर चीज की आवश्यकता नहीं होगी लेकिन एक अच्छी शुरुआत होगी। Netsuite Help Center

विशेष रूप से इस पृष्ठ को Ids & संदर्भों पर SuiteFlex/SuiteTalk (वेब ​​सेवा) अनुभाग देखें। Using Internal Ids, External Ids, and References

इसके साथ में कहा गया है कि मैं एक बिक्री आदेश में कस्टम फ़ील्ड जोड़ने की व्याख्या के साथ .net उदाहरण & के साथ मदद करने की कोशिश करूंगा।

यहां विभिन्न CustomFieldRefs जोड़ने के कुछ उदाहरण हैं:

//A list object to store all the customFieldRefs 
List<CustomFieldRef> oCustomFieldRefList = new List<CustomFieldRef>(); 

//List or Record Type reference 
SelectCustomFieldRef custbody_XXX_freight_terms = new SelectCustomFieldRef(); 
custbody_XXX_freight_terms.internalId = "custbody_XXX_freight_terms"; 
ListOrRecordRef oFreightTermsRecordRef = new ListOrRecordRef(); 
oFreightTermsRecordRef.internalId = <internalId of specific record in Netsuite>; 
//See the References link above for more info on this - trying to figure out typeId caused me a lot of pain. 
oFreightTermsRecordRef.typeId = <internalId of the List Record Type in Netsuite>; 
custbody_XXX_freight_terms.value = oFreightTermsRecordRef; 
oCustomFieldRefList.Add(custbody_XXX_freight_terms); 

//Freeform text sorta field    
StringCustomFieldRef objStringCustomFieldRef = new StringCustomFieldRef(); 
objStringCustomFieldRef.internalId = "custbody_XXX_tracking_link"; 
objStringCustomFieldRef.value = "StringValue"; 
oCustomFieldRefList.Add(objStringCustomFieldRef); 

//Checkbox field type 
BooleanCustomFieldRef custbody_XXX_if_fulfilled = new BooleanCustomFieldRef(); 
custbody_XXX_if_fulfilled.internalId = "custbody_XXX_if_fulfilled"; 
custbody_XXX_if_fulfilled.value = true; 
oCustomFieldRefList.Add(custbody_XXX_if_fulfilled); 

//By far the most complicated example a multi-select list referencing other records in Netsuite 
MultiSelectCustomFieldRef custrecord_XXX_transaction_link = new MultiSelectCustomFieldRef(); 
//internal id of field you are updating 
custrecord_XXX_transaction_link.internalId = "custrecord_XXX_transaction_link"; 

List<ListOrRecordRef> oListOrRecordRefList = new List<ListOrRecordRef>(); 

ListOrRecordRef oListOrRecordRefItemFulfillment = new ListOrRecordRef(); 
oListOrRecordRefItemFulfillment.name = "Item Fulfillment"; 
oListOrRecordRefItemFulfillment.internalId = <ItemFulfillmentInternalId>; 
//Item Fulfillment is record type (Transaction -30) - this is from the above Reference links 
oListOrRecordRefItemFulfillment.typeId = "-30"; 
oListOrRecordRefList.Add(oListOrRecordRefItemFulfillment); 

ListOrRecordRef oListOrRecordRefSalesOrder = new ListOrRecordRef(); 
oListOrRecordRefSalesOrder.name = "Sales Order"; 
oListOrRecordRefSalesOrder.internalId = <SalesOrderInternalId>; 
//Sales Order is record type (Transaction -30) - this is from the above Reference links 
oListOrRecordRefSalesOrder.typeId = "-30"; 
oListOrRecordRefList.Add(oListOrRecordRefSalesOrder); 

//Add array of all the ListOrRecordRefs to the MultiSelectCustomFieldRef   
custrecord_XXX_transaction_link.value = oListOrRecordRefList.ToArray(); 
oCustomFieldRefList.Add(custrecord_XXX_transaction_link); 

//And then add all these to the Custom Record List (Array) on the Sales Order Record 
objSalesOrder.customFieldList = oCustomFieldRefList.ToArray(); 

मैं क्या आपके ऊपर के उदाहरण में बता सकते हैं मुझे लगता है कि आपकी समस्या का ListOrRecordRef typeId के साथ है। आपके उदाहरण से यह कहना मुश्किल है कि आप किस प्रकार का संदर्भ दे रहे हैं लेकिन यदि आप इसे समझ सकते हैं और TypeId को अपने SelectCustomFieldRef पर सेट कर सकते हैं तो मुझे लगता है कि आपकी समस्या को ठीक करना चाहिए।

+0

मैंने नेटस्वाइट उपयोगकर्ता समूह के माध्यम से प्रश्न पोस्ट करने के 3-4 दिनों बाद इसे निकाला, आखिरकार किसी ने खींच लिया। यह वही था जो आपने सोचा था कि ListOrRecordRef मुद्दा था जब मुझे बताया गया कि एनएस केवल इसे कैसे स्वीकार करेगा, यह समझना आसान हो गया कि एनएस इस तरह क्यों स्वीकार करता है। विस्तृत जानकारी के लिए धन्यवाद, कोई इस दिन खोज करेगा और यह उपयोगी पाएगा और इसलिए मैं इसका उत्तर चिह्नित कर रहा हूं। एक बार फिर धन्यवाद। – Dreamcube

+0

@ रिक, क्या आपको पता है कि टाइपआईड प्रोग्रामेटिक रूप से पहचानना संभव है या नहीं? दूसरे शब्दों में, कस्टम फ़ील्ड का नाम जानकर, क्या वर्तमान में जुड़े कस्टमलिस्ट को निर्धारित करने का कोई तरीका है? – digitalsteez

+0

ध्यान दें कि StringCustomFieldRef के लिए यह वास्तव में स्क्रिप्ट आईडी संपत्ति आंतरिक नहीं होना चाहिए। यहां बताया गया है कि वह लाइन अब कैसे दिखाई देगी: objStringCustomFieldRef.scriptId = "custbody_XXX_tracking_link"; – theark40

संबंधित मुद्दे