netsuite
Edycja bezpośrednia za pomocą SuiteScript
Szukaj…
Wprowadzenie
Edycja bezpośrednia pozwala użytkownikom bardzo szybko modyfikować i aktualizować dane dla konkretnego rekordu bez konieczności ładowania całego rekordu na stronę, edytowania formularza, a następnie zapisywania rekordu.
Programiści NetSuite mają odpowiednią funkcjonalność o nazwie submitFields
. submitFields
funkcjonalność jest przez nlapiSubmitField
globalnej funkcji w SuiteScript 1,0 i N/record#submitFields
Sposób in SuiteScript 2.0.
Składnia
- nlapiSubmitField (recordType, recordId, fieldId, fieldValue);
- nlapiSubmitField (recordType, recordId, fieldIds, fieldValues);
- nlapiSubmitField (recordType, recordId, fieldId, fieldValue, doSourcing);
Parametry
Parametr | Detale |
---|---|
typ rekordu | String - Wewnętrzny identyfikator typu aktualizowanego rekordu |
recordId | String lub Number - Wewnętrzny identyfikator aktualizowanego rekordu |
fieldIds | String lub String[] - Wewnętrzne identyfikatory aktualizowanych pól |
fieldValues | any or any[] - Odpowiednie wartości do ustawienia w danych polach |
doSourcing | Boolean - Określa, czy wartości zależne powinny być pozyskiwane po przesłaniu rekordu. Wartość domyślna to false |
Uwagi
Funkcja submitFields
jest funkcją towarzyszącą funkcji lookupFields
.
Wydajność i ograniczenia
submitFields
działa znacznie szybciej i wykorzystuje mniejszą submitFields
niż wprowadzanie tych samych zmian przez ładowanie i przesyłanie pełnego rekordu.
Wiele pól może być aktualizowanych jednocześnie za taki sam koszt jak aktualizacja pojedynczego pola. Aktualizacja większej liczby pól za pomocą funkcji submitFields
nie submitFields
się z wyższymi kosztami zarządzania.
Należy jednak pamiętać, że tylko niektóre pola dla każdego typu rekordu można edytować bezpośrednio, a oszczędności wydajności dotyczą tylko tych pól edytowanych bezpośrednio. Jeśli submitFields
funkcji submitFields
w dowolnym polu, które nie może być edytowane bezpośrednio w polu, pole zostanie zaktualizowane poprawnie, ale za kulisami NetSuite załaduje i prześle rekord, tym samym zajmując więcej czasu i wykorzystując więcej zarządzania. Możesz ustalić, czy pole można edytować bezpośrednio, odwołując się do kolumny „nlapiSubmitField” w przeglądarce rekordów .
Funkcjonalność submitFields
jest również ograniczona do pól treści rekordu. Jeśli musisz zmodyfikować dane listy podrzędnej, musisz załadować rekord, aby wprowadzić zmiany, a następnie przesłać rekord.
Bibliografia:
- Pomoc NetSuite: „Edycja wbudowana i przegląd SuiteScript”
- NetSuite Help: „Edycja bezpośrednia za pomocą nlapiSubmitField”
- NetSuite Help: „Konsekwencje użycia nlapiSubmitField na polach edytowalnych nielinearnych”
- NetSuite Help: „Field API”
- Pomoc NetSuite: „record.submitFields (opcje)”
[1.0] Prześlij pojedyncze pole
/**
* A SuiteScript 1.0 example of using nlapiSubmitField to update a single field on a related record
*/
// From a Sales Order, get the Customer ID
var customerId = nlapiGetFieldValue("entity");
// Set a comment on the Customer record
nlapiSubmitField("customer", customerId, "comments", "This is a comment added by inline editing with SuiteScript.");
[1.0] Prześlij wiele pól
/**
* A SuiteScript 1.0 example of using nlapiSubmitField to update multiple fields on a related record
*/
// From a Sales Order, get the Customer ID
var customerId = nlapiGetFieldValue("entity");
// Set a Comment and update the Budget Approved field on the Customer record
nlapiSubmitField("customer", customerId,
["comments", "isbudgetapproved"],
["The budget has been approved.", "T"]);
[2.0] Prześlij pojedyncze pole
/**
* A SuiteScript 2.0 example of using N/record#submitFields to update a single field on a related record
*/
require(["N/record", "N/currentRecord"], function (r, cr) {
// From a Sales Order, get the Customer ID
var customerId = cr.get().getValue({"fieldId": "entity"});
// Set a Comment on the Customer record
r.submitFields({
"type": r.Type.CUSTOMER,
"id": customerId,
"values": {
"comments": "This is a comment added by inline editing with SuiteScript."
}
});
});
[2.0] Prześlij wiele pól
/**
* A SuiteScript 2.0 example of using N/record#submitFields to update multiple fields on a related record
*/
require(["N/record", "N/currentRecord"], function (r, cr) {
// From a Sales Order, get the Customer ID
var customerId = cr.get().getValue({"fieldId": "entity"});
// Set a Comment and check the Budget Approved box on the Customer record
r.submitFields({
"type": r.Type.CUSTOMER,
"id": customerId,
"values": {
"comments": "The budget has been approved.",
"isbudgetapproved": true
}
});
});