ANS-0752 · SERVICES WEB ET INTéGRATIONS
Comment effectuer une recherche d’articles en stock à l’aide de l’API SOAP SuiteTalk de NetSuite en C# ?
Apprenez à rechercher par programmation des articles en stock par mot-clé et par type à l’aide de l’API SOAP SuiteTalk de NetSuite avec C#.
Solution courte
Pour rechercher des articles en stock dans NetSuite à l’aide de C# et de l’API SOAP SuiteTalk, instanciez un objet ItemSearch, définissez SearchStringField pour le nom de l’article et SearchEnumMultiSelectField pour le type d’article, puis lancez la recherche via _service.search. Parcourez les résultats pour afficher les détails des articles.
Scénario
Les développeurs qui intègrent des applications externes à NetSuite ont souvent besoin de récupérer des fiches d’articles de stock spécifiques. Une exigence courante consiste à rechercher des articles à partir de mots-clés figurant dans leur nom et à les filtrer par type d’article, par exemple les articles de stock, afin de garantir une récupération précise des données pour les processus métier.
Solution
Les ressources pour développeurs NetSuite fournissent des exemples en C# illustrant comment interagir avec l’API SOAP SuiteTalk. Le code C# suivant montre comment effectuer une recherche d’articles en stock par nom et par type, et inclut une méthode d’aide permettant d’afficher les champs des articles. Cette approche utilise des objets tels que ItemSearch, SearchStringField, SearchEnumMultiSelectField, ItemSearchBasic et la méthode _service.search pour définir les critères de recherche et les appliquer.
private String ITEM_TYPE "_inventoryItem";
/// <summary> Searches for InventoryItem records based on a
keyword entered by
/// the user. All inventory items, including parent items, with the
/// keyword found in their name field will be returned.
/// </summary>
public virtual void searchInventoryItemByName()
{
_out.writeLn("Enter a keyword of the item name to be searched");
System.String keyWordString _out.readLn();
ItemSearch itemSearch new ItemSearch();
SearchStringField name new SearchStringField();
name.@operator SearchStringFieldOperator.contains;
name.operatorSpecified true;
name.searchValue keyWordString;
SearchEnumMultiSelectField type new
SearchEnumMultiSelectField();
String[] inv new String[1];
inv[0] ITEM_TYPE;
type.@operator SearchEnumMultiSelectFieldOperator.anyOf;
type.operatorSpecified true;
type.searchValue inv;
ItemSearchBasic itemBasic new ItemSearchBasic();
itemBasic.type type;
itemBasic.itemId name;
itemSearch.basic itemBasic;
SearchResult res _service.search(itemSearch);
if (res.status.isSuccess)
{
Record[] recordList;
_out.writeLn("
Number of items found with thenkeyword " + keyWordString + ": " + res.totalRecords);
if (res.totalRecords > 0)
{
_out.writeLn("
Page size: " + res.pageSize);
for (int i 1; i < res.totalPages; i++)
{
recordList res.recordList;
_out.writeLn("Page " + res.pageIndex);
_out.writeLn("------");
for (int j 0; j < recordList.Length; j++)
{
if (recordList[j] is InventoryItem)
{
InventoryItem item
(InventoryItem) (recordList[j]);
displayInventoryItemFields(item);
}
}
if (res.pageIndex < res.totalPages)
{
res
_service.searchMoreWithId(res.searchId, i + 1);
}
}
}
}
else
{
_out.error(getStatusDetails(res.status));
}
}/// <summary> A helper method that takes an
InventoryItem and prints out
/// its Display Name, Item ID and Cost fields.
/// </summary>
private void displayInventoryItemFields(InventoryItem item)
{
if (item ! null)
{
if (item.displayName ! null)
{
_out.writeLn(" Display Name:
" + item.displayName);
}
else
{
_out.writeLn(" Display Name:
none");
}
}
}Support expert NetSuite
Besoin d’aide pour cet enjeu NetSuite ?
Accompagnement-conseil et configuration pour Services Web et intégrations
