@yousolution/node-red-contrib-you-sap-service-layer 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,403 @@
1
+ <script type="text/javascript">
2
+ RED.nodes.registerType('listSap',{
3
+ category: 'Sap',
4
+ color: '#FFC300',
5
+ defaults: {
6
+ name: {value: ''},
7
+ entity: {value: ''},
8
+ udo: {value: ''},
9
+ udt: {value: ''},
10
+ headers: {value: ''},
11
+ nextLink: {value: ''},
12
+ query: {value: 'query={};'}
13
+ },
14
+ inputs:1,
15
+ outputs:1,
16
+ icon: 'font-awesome/fa-cubes',
17
+ label: function() {
18
+ return this.name||"Sap list";
19
+ },
20
+ oneditprepare: function() {
21
+ this.editor = RED.editor.createEditor({
22
+ id: 'node-input-editor',
23
+ mode: 'ace/mode/javascript',
24
+ value: this.query
25
+ });
26
+
27
+ $("#node-input-headers").typedInput({
28
+ type:"msg",
29
+ types:["msg"],
30
+ typeField: "#node-input-headers-type",
31
+ value: 'headers'
32
+ });
33
+
34
+ $("#node-input-nextLink").typedInput({
35
+ type:"msg",
36
+ types:["msg"],
37
+ typeField: "#node-input-nextLink-type",
38
+ value: 'nextLink'
39
+ });
40
+
41
+ jQuery("#node-input-entity").change(function() {
42
+ if (jQuery(this).val() === 'UDO'){
43
+ jQuery('#container-udo').show();
44
+ } else {
45
+ jQuery('#container-udo').hide();
46
+ }
47
+ if (jQuery(this).val() === 'UDT'){
48
+ jQuery('#container-udt').show();
49
+ } else {
50
+ jQuery('#container-udt').hide();
51
+ }
52
+ });
53
+
54
+ },
55
+ oneditsave: function() {
56
+ this.query = this.editor.getValue();
57
+ this.editor.destroy();
58
+ delete this.editor;
59
+ },
60
+ oneditcancel: function() {
61
+ this.editor.destroy();
62
+ delete this.editor;
63
+ }
64
+ });
65
+ </script>
66
+
67
+ <script type="text/html" data-template-name="listSap">
68
+ <div class="form-row">
69
+ <label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
70
+ <input type="text" id="node-input-name" placeholder="Name">
71
+ </div>
72
+
73
+ <div class="form-row">
74
+ <label for="node-input-type"><i class="fa fa-comment"></i> Headers</label>
75
+ <input type="text" id="node-input-headers">
76
+ <input type="hidden" id="node-input-headers-type">
77
+ </div>
78
+
79
+ <div class="form-row">
80
+ <label for="node-input-type"><i class="fa fa-comment"></i> NextLink</label>
81
+ <input type="text" id="node-input-nextLink">
82
+ <input type="hidden" id="node-input-nextLink-type">
83
+ </div>
84
+
85
+ <div class="form-row">
86
+ <label for="node-input-type"><i class="fa fa-tag"></i> Entity</label>
87
+ <select name="node-input-entity" id="node-input-entity">
88
+ <option value="AccountCategory">AccountCategory</option>
89
+ <option value="AccountSegmentations">AccountSegmentations</option>
90
+ <option value="AccrualTypes">AccrualTypes</option>
91
+ <option value="Activities">Activities</option>
92
+ <option value="ActivityLocations">ActivityLocations</option>
93
+ <option value="ActivityRecipientLists">ActivityRecipientLists</option>
94
+ <option value="ActivityStatuses">ActivityStatuses</option>
95
+ <option value="ActivityTypes">ActivityTypes</option>
96
+ <option value="AdditionalExpenses">AdditionalExpenses</option>
97
+ <option value="AlertManagements">AlertManagements</option>
98
+ <option value="ApprovalRequests">ApprovalRequests</option>
99
+ <option value="ApprovalStages">ApprovalStages</option>
100
+ <option value="ApprovalTemplates">ApprovalTemplates</option>
101
+ <option value="AssetCapitalization">AssetCapitalization</option>
102
+ <option value="AssetCapitalizationCreditMemo">AssetCapitalizationCreditMemo</option>
103
+ <option value="AssetClasses">AssetClasses</option>
104
+ <option value="AssetDepreciationGroups">AssetDepreciationGroups</option>
105
+ <option value="AssetGroups">AssetGroups</option>
106
+ <option value="AssetManualDepreciation">AssetManualDepreciation</option>
107
+ <option value="AssetRetirement">AssetRetirement</option>
108
+ <option value="AssetTransfer">AssetTransfer</option>
109
+ <option value="Attachments2">Attachments2</option>
110
+ <option value="AttributeGroups">AttributeGroups</option>
111
+ <option value="BankChargesAllocationCodes">BankChargesAllocationCodes</option>
112
+ <option value="Banks">Banks</option>
113
+ <option value="BankStatements">BankStatements</option>
114
+ <option value="BarCodes">BarCodes</option>
115
+ <option value="BatchNumberDetails">BatchNumberDetails</option>
116
+ <option value="BillOfExchangeTransactions">BillOfExchangeTransactions</option>
117
+ <option value="BinLocationAttributes">BinLocationAttributes</option>
118
+ <option value="BinLocationFields">BinLocationFields</option>
119
+ <option value="BinLocations">BinLocations</option>
120
+ <option value="BlanketAgreements">BlanketAgreements</option>
121
+ <option value="BOEDocumentTypes">BOEDocumentTypes</option>
122
+ <option value="BOEInstructions">BOEInstructions</option>
123
+ <option value="BOEPortfolios">BOEPortfolios</option>
124
+ <option value="BPPriorities">BPPriorities</option>
125
+ <option value="Branches">Branches</option>
126
+ <option value="BrazilBeverageIndexers">BrazilBeverageIndexers</option>
127
+ <option value="BrazilFuelIndexers">BrazilFuelIndexers</option>
128
+ <option value="BrazilMultiIndexers">BrazilMultiIndexers</option>
129
+ <option value="BrazilNumericIndexers">BrazilNumericIndexers</option>
130
+ <option value="BrazilStringIndexers">BrazilStringIndexers</option>
131
+ <option value="BudgetDistributions">BudgetDistributions</option>
132
+ <option value="Budgets">Budgets</option>
133
+ <option value="BudgetScenarios">BudgetScenarios</option>
134
+ <option value="BusinessPartnerGroups">BusinessPartnerGroups</option>
135
+ <option value="BusinessPartnerProperties">BusinessPartnerProperties</option>
136
+ <option value="BusinessPartners">BusinessPartners</option>
137
+ <option value="BusinessPlaces">BusinessPlaces</option>
138
+ <option value="CampaignResponseType">CampaignResponseType</option>
139
+ <option value="Campaigns">Campaigns</option>
140
+ <option value="CashDiscounts">CashDiscounts</option>
141
+ <option value="CashFlowLineItems">CashFlowLineItems</option>
142
+ <option value="CertificateSeries">CertificateSeries</option>
143
+ <option value="ChartOfAccounts">ChartOfAccounts</option>
144
+ <option value="ChecksforPayment">ChecksforPayment</option>
145
+ <option value="ChooseFromList">ChooseFromList</option>
146
+ <option value="Cockpits">Cockpits</option>
147
+ <option value="CommissionGroups">CommissionGroups</option>
148
+ <option value="Contacts">Contacts</option>
149
+ <option value="ContractTemplates">ContractTemplates</option>
150
+ <option value="CorrectionInvoice">CorrectionInvoice</option>
151
+ <option value="CorrectionInvoiceReversal">CorrectionInvoiceReversal</option>
152
+ <option value="CorrectionPurchaseInvoice">CorrectionPurchaseInvoice</option>
153
+ <option value="CorrectionPurchaseInvoiceReversal">CorrectionPurchaseInvoiceReversal</option>
154
+ <option value="CostCenterTypes">CostCenterTypes</option>
155
+ <option value="CostElements">CostElements</option>
156
+ <option value="Countries">Countries</option>
157
+ <option value="CreditCardPayments">CreditCardPayments</option>
158
+ <option value="CreditCards">CreditCards</option>
159
+ <option value="CreditNotes">CreditNotes</option>
160
+ <option value="CreditPaymentMethods">CreditPaymentMethods</option>
161
+ <option value="Currencies">Currencies</option>
162
+ <option value="CustomerEquipmentCards">CustomerEquipmentCards</option>
163
+ <option value="CustomsDeclaration">CustomsDeclaration</option>
164
+ <option value="CustomsGroups">CustomsGroups</option>
165
+ <option value="CycleCountDeterminations">CycleCountDeterminations</option>
166
+ <option value="DeductionTaxGroups">DeductionTaxGroups</option>
167
+ <option value="DeductionTaxHierarchies">DeductionTaxHierarchies</option>
168
+ <option value="DeductionTaxSubGroups">DeductionTaxSubGroups</option>
169
+ <option value="DeliveryNotes">DeliveryNotes</option>
170
+ <option value="Departments">Departments</option>
171
+ <option value="Deposits">Deposits</option>
172
+ <option value="DepreciationAreas">DepreciationAreas</option>
173
+ <option value="DepreciationTypePools">DepreciationTypePools</option>
174
+ <option value="DepreciationTypes">DepreciationTypes</option>
175
+ <option value="DeterminationCriterias">DeterminationCriterias</option>
176
+ <option value="Dimensions">Dimensions</option>
177
+ <option value="DistributionRules">DistributionRules</option>
178
+ <option value="DNFCodeSetup">DNFCodeSetup</option>
179
+ <option value="DownPayments">DownPayments</option>
180
+ <option value="Drafts">Drafts</option>
181
+ <option value="DunningLetters">DunningLetters</option>
182
+ <option value="DunningTerms">DunningTerms</option>
183
+ <option value="ElectronicFileFormats">ElectronicFileFormats</option>
184
+ <option value="EmployeeIDType">EmployeeIDType</option>
185
+ <option value="EmployeePosition">EmployeePosition</option>
186
+ <option value="EmployeePosition">EmployeePosition</option>
187
+ <option value="EmployeeRolesSetup">EmployeeRolesSetup</option>
188
+ <option value="EmployeesInfo">EmployeesInfo</option>
189
+ <option value="EmployeeStatus">EmployeeStatus</option>
190
+ <option value="EmployeeTransfers">EmployeeTransfers</option>
191
+ <option value="EnhancedDiscountGroups">EnhancedDiscountGroups</option>
192
+ <option value="ExtendedTranslations">ExtendedTranslations</option>
193
+ <option value="FAAccountDeterminations">FAAccountDeterminations</option>
194
+ <option value="FactoringIndicators">FactoringIndicators</option>
195
+ <option value="FinancialYears">FinancialYears</option>
196
+ <option value="FiscalPrinter">FiscalPrinter</option>
197
+ <option value="FormattedSearches">FormattedSearches</option>
198
+ <option value="Forms1099">Forms1099</option>
199
+ <option value="GLAccountAdvancedRules">GLAccountAdvancedRules</option>
200
+ <option value="GoodsReturnRequest">GoodsReturnRequest</option>
201
+ <option value="GovPayCodes">GovPayCodes</option>
202
+ <option value="HouseBankAccounts">HouseBankAccounts</option>
203
+ <option value="IncomingPayments">IncomingPayments</option>
204
+ <option value="Industries">Industries</option>
205
+ <option value="IntegrationPackagesConfigure">IntegrationPackagesConfigure</option>
206
+ <option value="IntrastatConfiguration">IntrastatConfiguration</option>
207
+ <option value="InventoryCountings">InventoryCountings</option>
208
+ <option value="InventoryCycles">InventoryCycles</option>
209
+ <option value="InventoryGenEntries">InventoryGenEntries</option>
210
+ <option value="InventoryGenExits">InventoryGenExits</option>
211
+ <option value="InventoryOpeningBalances">InventoryOpeningBalances</option>
212
+ <option value="InventoryPostings">InventoryPostings</option>
213
+ <option value="InventoryTransferRequests">InventoryTransferRequests</option>
214
+ <option value="Invoices">Invoices</option>
215
+ <option value="ItemGroups">ItemGroups</option>
216
+ <option value="ItemProperties">ItemProperties</option>
217
+ <option value="Items">Items</option>
218
+ <option value="JournalEntries">JournalEntries</option>
219
+ <option value="JournalEntryDocumentTypes">JournalEntryDocumentTypes</option>
220
+ <option value="KnowledgeBaseSolutions">KnowledgeBaseSolutions</option>
221
+ <option value="KPIs">KPIs</option>
222
+ <option value="LandedCosts">LandedCosts</option>
223
+ <option value="LandedCostsCodes">LandedCostsCodes</option>
224
+ <option value="LegalData">LegalData</option>
225
+ <option value="LengthMeasures">LengthMeasures</option>
226
+ <option value="LocalEra">LocalEra</option>
227
+ <option value="Manufacturers">Manufacturers</option>
228
+ <option value="MaterialGroups">MaterialGroups</option>
229
+ <option value="MaterialRevaluation">MaterialRevaluation</option>
230
+ <option value="Messages">Messages</option>
231
+ <option value="MobileAddOnSetting">MobileAddOnSetting</option>
232
+ <option value="MultiLanguageTranslations">MultiLanguageTranslations</option>
233
+ <option value="NatureOfAssessees">NatureOfAssessees</option>
234
+ <option value="NCMCodesSetup">NCMCodesSetup</option>
235
+ <option value="NFModels">NFModels</option>
236
+ <option value="NFTaxCategories">NFTaxCategories</option>
237
+ <option value="OccurrenceCodes">OccurrenceCodes</option>
238
+ <option value="Orders">Orders</option>
239
+ <option value="PackagesTypes">PackagesTypes</option>
240
+ <option value="PartnersSetups">PartnersSetups</option>
241
+ <option value="PaymentBlocks">PaymentBlocks</option>
242
+ <option value="PaymentDrafts">PaymentDrafts</option>
243
+ <option value="PaymentRunExport">PaymentRunExport</option>
244
+ <option value="PaymentTermsTypes">PaymentTermsTypes</option>
245
+ <option value="PickLists">PickLists</option>
246
+ <option value="POSDailySummary">POSDailySummary</option>
247
+ <option value="PredefinedTexts">PredefinedTexts</option>
248
+ <option value="PriceLists">PriceLists</option>
249
+ <option value="ProductionOrders">ProductionOrders</option>
250
+ <option value="ProductTrees">ProductTrees</option>
251
+ <option value="ProfitCenters">ProfitCenters</option>
252
+ <option value="ProjectManagements">ProjectManagements</option>
253
+ <option value="ProjectManagementTimeSheet">ProjectManagementTimeSheet</option>
254
+ <option value="Projects">Projects</option>
255
+ <option value="PurchaseCreditNotes">PurchaseCreditNotes</option>
256
+ <option value="PurchaseDeliveryNotes">PurchaseDeliveryNotes</option>
257
+ <option value="PurchaseDownPayments">PurchaseDownPayments</option>
258
+ <option value="PurchaseInvoices">PurchaseInvoices</option>
259
+ <option value="PurchaseOrders">PurchaseOrders</option>
260
+ <option value="PurchaseQuotations">PurchaseQuotations</option>
261
+ <option value="PurchaseRequests">PurchaseRequests</option>
262
+ <option value="PurchaseReturns">PurchaseReturns</option>
263
+ <option value="PurchaseTaxInvoices">PurchaseTaxInvoices</option>
264
+ <option value="QueryAuthGroups">QueryAuthGroups</option>
265
+ <option value="QueryCategories">QueryCategories</option>
266
+ <option value="Queue">Queue</option>
267
+ <option value="Quotations">Quotations</option>
268
+ <option value="RecurringTransaction">RecurringTransaction</option>
269
+ <option value="Relationships">Relationships</option>
270
+ <option value="ReportFilter">ReportFilter</option>
271
+ <option value="ReportTypes">ReportTypes</option>
272
+ <option value="ResourceCapacities">ResourceCapacities</option>
273
+ <option value="ResourceGroups">ResourceGroups</option>
274
+ <option value="ResourceProperties">ResourceProperties</option>
275
+ <option value="Resources">Resources</option>
276
+ <option value="RetornoCodes">RetornoCodes</option>
277
+ <option value="ReturnRequest">ReturnRequest</option>
278
+ <option value="Returns">Returns</option>
279
+ <option value="RouteStages">RouteStages</option>
280
+ <option value="SalesForecast">SalesForecast</option>
281
+ <option value="SalesOpportunities">SalesOpportunities</option>
282
+ <option value="SalesOpportunityCompetitorsSetup">SalesOpportunityCompetitorsSetup</option>
283
+ <option value="SalesOpportunityInterestsSetup">SalesOpportunityInterestsSetup</option>
284
+ <option value="SalesOpportunityReasonsSetup">SalesOpportunityReasonsSetup</option>
285
+ <option value="SalesOpportunitySourcesSetup">SalesOpportunitySourcesSetup</option>
286
+ <option value="SalesPersons">SalesPersons</option>
287
+ <option value="SalesPersons">SalesStages</option>
288
+ <option value="SalesTaxAuthoritiesTypes">SalesTaxAuthoritiesTypes</option>
289
+ <option value="SalesTaxCodes">SalesTaxCodes</option>
290
+ <option value="SalesTaxInvoices">SalesTaxInvoices</option>
291
+ <option value="Sections">Sections</option>
292
+ <option value="SerialNumberDetails">SerialNumberDetails</option>
293
+ <option value="ServiceCallOrigins">ServiceCallOrigins</option>
294
+ <option value="ServiceCallProblemSubTypes">ServiceCallProblemSubTypes</option>
295
+ <option value="ServiceCallProblemTypes">ServiceCallProblemTypes</option>
296
+ <option value="ServiceCalls">ServiceCalls</option>
297
+ <option value="ServiceCallSolutionStatus">ServiceCallSolutionStatus</option>
298
+ <option value="ServiceCallStatus">ServiceCallStatus</option>
299
+ <option value="ServiceCallTypes">ServiceCallTypes</option>
300
+ <option value="ServiceContracts">ServiceContracts</option>
301
+ <option value="ServiceGroups">ServiceGroups</option>
302
+ <option value="ShippingTypes">ShippingTypes</option>
303
+ <option value="StockTransferDrafts">StockTransferDrafts</option>
304
+ <option value="StockTransfers">StockTransfers</option>
305
+ <option value="TargetGroups">TargetGroups</option>
306
+ <option value="TaxCodeDeterminations">TaxCodeDeterminations</option>
307
+ <option value="TaxCodeDeterminationsTCD">TaxCodeDeterminationsTCD</option>
308
+ <option value="TaxInvoiceReport">TaxInvoiceReport</option>
309
+ <option value="TaxWebSites">TaxWebSites</option>
310
+ <option value="Teams">Teams</option>
311
+ <option value="TerminationReason">TerminationReason</option>
312
+ <option value="Territories">Territories</option>
313
+ <option value="TrackingNotes">TrackingNotes</option>
314
+ <option value="TransactionCodes">TransactionCodes</option>
315
+ <option value="UnitOfMeasurementGroups">UnitOfMeasurementGroups</option>
316
+ <option value="UnitOfMeasurements">UnitOfMeasurements</option>
317
+ <option value="UserDefaultGroups">UserDefaultGroups</option>
318
+ <option value="UserLanguages">UserLanguages</option>
319
+ <option value="UserObjectsMD">UserObjectsMD</option>
320
+ <option value="UserPermissionTree">UserPermissionTree</option>
321
+ <option value="Users">Users</option>
322
+ <option value="UserTablesMD">UserTablesMD</option>
323
+ <option value="ValueMapping">ValueMapping</option>
324
+ <option value="ValueMappingCommunication">ValueMappingCommunication</option>
325
+ <option value="VendorPayments">VendorPayments</option>
326
+ <option value="VatGroups">VatGroups</option>
327
+ <option value="Warehouses">Warehouses</option>
328
+ <option value="WarehouseLocations">WarehouseLocations</option>
329
+ <option value="WarehouseSublevelCodes">WarehouseSublevelCodes</option>
330
+ <option value="WeightMeasures">WeightMeasures</option>
331
+ <option value="WithholdingTaxCodes">WithholdingTaxCodes</option>
332
+ <option value="WitholdingTaxDefinition">WitholdingTaxDefinition</option>
333
+ <option value="WizardPaymentMethods">WizardPaymentMethods</option>
334
+ <option value="WorkOrders">WorkOrders</option>
335
+ <option value="UDO">UDO</option>
336
+ <option value="UDT">UDT</option>
337
+ </select>
338
+ </div>
339
+
340
+ <div class="form-row" style="display:none" id="container-udo">
341
+ <label for="node-input-udo"><i class="fa fa-tag"></i> UDO</label>
342
+ <input type="text" id="node-input-udo" placeholder="UDO Name">
343
+ </div>
344
+
345
+ <div class="form-row" style="display:none" id="container-udt">
346
+ <label for="node-input-udt"><i class="fa fa-tag"></i> UDT</label>
347
+ <input type="text" id="node-input-udt" placeholder="UDT Name">
348
+ </div>
349
+
350
+ <div class="form-row">
351
+ <label for="node-input-editor"><i class="fa fa-database"></i> Query oData</label>
352
+ <div style="height: 250px; min-height:150px;" class="node-text-editor" id="node-input-editor"></div>
353
+ </div>
354
+ </script>
355
+
356
+ <!-- Documentation -->
357
+ <script type="text/html" data-help-name="listSap">
358
+ <p>List action</p>
359
+
360
+ <h3>Inputs</h3>
361
+ <dl class="message-properties">
362
+ <dt>Name
363
+ <span class="property-type">string</span>
364
+ </dt>
365
+ <dd> the node's name </dd>
366
+ <dt>Entity
367
+ <span class="property-type">string</span>
368
+ </dt>
369
+ <dd> the entity name of SAP </dd>
370
+ <dt>query
371
+ <span class="property-type">string</span>
372
+ </dt>
373
+ <dd> query to filter the response of entity SAP </dd>
374
+ </dl>
375
+
376
+ <h3>Outputs</h3>
377
+ <ol class="node-ports">
378
+ <li>Standard output
379
+ <dl class="message-properties">
380
+ <dt>payload <span class="property-type">string</span></dt>
381
+ <dd>the standard output of the command.</dd>
382
+ </dl>
383
+ </li>
384
+ </ol>
385
+
386
+ <h3>Details</h3>
387
+ <p>this node is used to return a list of the entities from the SAP.
388
+ See the examples to understand how to use it.
389
+ </p>
390
+ <!-- <p><code>msg.payload</code> is used as the payload of the published message.
391
+ If it contains an Object it will be converted to a JSON string before being sent.
392
+ If it contains a binary Buffer the message will be published as-is.</p>
393
+ <p>The topic used can be configured in the node or, if left blank, can be set
394
+ by <code>msg.topic</code>.</p>
395
+ <p>Likewise the QoS and retain values can be configured in the node or, if left
396
+ blank, set by <code>msg.qos</code> and <code>msg.retain</code> respectively.</p> -->
397
+
398
+ <h3>References</h3>
399
+ <ul>
400
+ <li><a href="https://sap-samples.github.io/smb-summit-hackathon/b1sl.html" target="_black">Service layer API docs</a> - for more details </li>
401
+ <li><a href="https://github.com/yousolution-cloud/node-red-contrib-you-sap-service-layer">@yousolution-cloud/node-red-contrib-you-sap-service-layer</a> - the nodes github repository</li>
402
+ </ul>
403
+ </script>
@@ -0,0 +1,34 @@
1
+ process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
2
+ const axios = require('axios');
3
+ const Support = require('./support');
4
+ const buildQuery = require('odata-query').default;
5
+
6
+ module.exports = function (RED) {
7
+ function ListSapNode(config) {
8
+ RED.nodes.createNode(this, config);
9
+ const node = this;
10
+
11
+ // reset status
12
+ node.status({});
13
+
14
+ node.on('input', async (msg, send, done) => {
15
+ // reset status
16
+ node.status({});
17
+
18
+ try {
19
+ const options = { method: 'GET', hasRawQuery: true };
20
+ const login = Support.login;
21
+ const result = await Support.sendRequest({ node, msg, config, axios, login, options });
22
+ msg.payload = result.data;
23
+ msg.nextLink = result.data['odata.nextLink'];
24
+ msg.statusCode = result.status;
25
+ node.status({ fill: 'green', shape: 'dot', text: 'success' });
26
+ node.send(msg);
27
+ } catch (error) {
28
+ node.status({ fill: 'red', shape: 'dot', text: 'Error' });
29
+ done(error);
30
+ }
31
+ });
32
+ }
33
+ RED.nodes.registerType('listSap', ListSapNode, {});
34
+ };
@@ -0,0 +1,85 @@
1
+ <script type="text/javascript">
2
+ RED.nodes.registerType('nextLink',{
3
+ category: 'Sap',
4
+ color: '#FFC300',
5
+ defaults: {
6
+ name: {value: ''},
7
+ nextLink: {value: ''}
8
+ },
9
+ inputs:1,
10
+ outputs:1,
11
+ icon: 'font-awesome/fa-arrows-h',
12
+ label: function() {
13
+ return this.name||"Next link";
14
+ },
15
+ oneditprepare: function() {
16
+ $("#node-input-nextLink").typedInput({
17
+ type:"msg",
18
+ types:["msg"],
19
+ typeField: "#node-input-nextLink-type",
20
+ value: 'nextLink'
21
+ });
22
+ }
23
+ });
24
+ </script>
25
+
26
+
27
+
28
+
29
+ <script type="text/html" data-template-name="nextLink">
30
+ <div class="form-row">
31
+ <label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
32
+ <input type="text" id="node-input-name" placeholder="Name">
33
+ </div>
34
+
35
+ <div class="form-row">
36
+ <label for="node-input-type"><i class="fa fa-comment"></i> NextLink</label>
37
+ <input type="text" id="node-input-nextLink">
38
+ <input type="hidden" id="node-input-nextLink-type">
39
+ </div>
40
+ </script>
41
+
42
+ <!-- Documentation -->
43
+ <script type="text/html" data-help-name="nextLink">
44
+ <p>Next link</p>
45
+
46
+ <h3>Inputs</h3>
47
+ <dl class="message-properties">
48
+ <dt>Name
49
+ <span class="property-type">string</span>
50
+ </dt>
51
+ <dd> the node's name </dd>
52
+ <dt>NextLink
53
+ <span class="property-type">string</span>
54
+ </dt>
55
+ <dd> the url link to next Service Layer page </dd>
56
+ </dl>
57
+
58
+ <h3>Outputs</h3>
59
+ <ol class="node-ports">
60
+ <li>Standard output
61
+ <dl class="message-properties">
62
+ <dt>payload <span class="property-type">string</span></dt>
63
+ <dd>the standard output of the command.</dd>
64
+ </dl>
65
+ </li>
66
+ </ol>
67
+
68
+ <h3>Details</h3>
69
+ <p>this node is used to get the next page of result of items from service layer.
70
+ See the examples to understand how to use it.
71
+ </p>
72
+ <!-- <p><code>msg.payload</code> is used as the payload of the published message.
73
+ If it contains an Object it will be converted to a JSON string before being sent.
74
+ If it contains a binary Buffer the message will be published as-is.</p>
75
+ <p>The topic used can be configured in the node or, if left blank, can be set
76
+ by <code>msg.topic</code>.</p>
77
+ <p>Likewise the QoS and retain values can be configured in the node or, if left
78
+ blank, set by <code>msg.qos</code> and <code>msg.retain</code> respectively.</p> -->
79
+
80
+ <h3>References</h3>
81
+ <ul>
82
+ <li><a href="https://sap-samples.github.io/smb-summit-hackathon/b1sl.html" target="_black">Service layer API docs</a> - for more details </li>
83
+ <li><a href="https://github.com/yousolution-cloud/node-red-contrib-you-sap-service-layer">@yousolution-cloud/node-red-contrib-you-sap-service-layer</a> - the nodes github repository</li>
84
+ </ul>
85
+ </script>
@@ -0,0 +1,18 @@
1
+ module.exports = function (RED) {
2
+ function NextLinkNode(config) {
3
+ RED.nodes.createNode(this, config);
4
+ const node = this;
5
+
6
+ node.on('input', async (msg) => {
7
+ const nextLink = msg[config.nextLink];
8
+
9
+ if (!nextLink) {
10
+ return;
11
+ }
12
+
13
+ node.send(msg);
14
+ });
15
+ }
16
+ RED.nodes.registerType('nextLink', NextLinkNode, {});
17
+ };
18
+