rnsap 0.4.7 → 0.4.8
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.
- checksums.yaml +4 -4
- data/lib/helper/util_helper.rb +39 -0
- data/lib/rnsap.rb +69 -38
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5dd7ba84b18711bdaf64bc605af4003b21f41296896cba5ae13681b41244750f
|
4
|
+
data.tar.gz: 51728b725b3aaa900a517425aa0897b25f449fd44f962fa7ce3ab346917d4a53
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1de3138f78004c63c9174e5c97441babc5e83efb7e930ec8bdb4986a5768f6f3aca8fefdc762c1548350bb8116cbf532c76370b969ccfad7c963513ecf3b968
|
7
|
+
data.tar.gz: d6fcd634233711dccb18da6ba342c9bf9ddccef11ca50917c31bb39d53767fcfc2b7e41996d7fa41445e07740b371b84a6083cae24cfec5e4d956e37c98f1b92
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module UtilHelper
|
2
|
+
require 'JSON'
|
3
|
+
|
4
|
+
def log(msg='no message')
|
5
|
+
puts obj_to_s(msg)
|
6
|
+
end
|
7
|
+
|
8
|
+
def obj_to_s(msg)
|
9
|
+
case msg.class
|
10
|
+
when Hash
|
11
|
+
JSON.pretty_generate(msg)
|
12
|
+
else
|
13
|
+
begin
|
14
|
+
JSON.pretty_generate(JSON.parse(msg.to_json))
|
15
|
+
rescue
|
16
|
+
msg
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
# def api_return(*options)
|
22
|
+
# puts 'options'
|
23
|
+
# log api_return2(options[1], options[0]) if options[0].class.to_s == 'Integer'
|
24
|
+
# log(options)
|
25
|
+
# end
|
26
|
+
|
27
|
+
|
28
|
+
def api_return(rc=0, message ='', obj=nil, exception=nil )
|
29
|
+
ret = {
|
30
|
+
rc: exception ? (rc > 0 ? rc : 8) : rc,
|
31
|
+
message: message
|
32
|
+
}
|
33
|
+
ret[:exception] = exception.to_s if exception
|
34
|
+
ret[:return] = obj if obj
|
35
|
+
ret
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
end
|
data/lib/rnsap.rb
CHANGED
@@ -16,8 +16,10 @@ require 'preq_release_info/preq_release_posted'
|
|
16
16
|
require 'preq_release_info/preq_release_final'
|
17
17
|
require 'return'
|
18
18
|
require 'helper/rfc_helper'
|
19
|
+
require 'helper/util_helper'
|
19
20
|
|
20
21
|
include NWRFC
|
22
|
+
include UtilHelper
|
21
23
|
|
22
24
|
# Module for SAP helper methods. RnSap allows for a simpler
|
23
25
|
# manner to access SAP servers calling RFC BAPIs.
|
@@ -57,9 +59,7 @@ module RnSap
|
|
57
59
|
|
58
60
|
fn_commit.invoke
|
59
61
|
|
60
|
-
{
|
61
|
-
tb_return: fn_commit[:RETURN],
|
62
|
-
}
|
62
|
+
api_return_success({tb_return: fn_commit[:RETURN]})
|
63
63
|
end
|
64
64
|
|
65
65
|
def rollback(conn)
|
@@ -69,9 +69,7 @@ module RnSap
|
|
69
69
|
|
70
70
|
fn_rollback.invoke
|
71
71
|
|
72
|
-
{
|
73
|
-
tb_return: fn_rollback[:RETURN],
|
74
|
-
}
|
72
|
+
api_return_success({tb_return: fn_rollback[:RETURN]})
|
75
73
|
end
|
76
74
|
|
77
75
|
# Invokes SAP RFC_READ_TABLE function module remotely, passing
|
@@ -214,17 +212,24 @@ module RnSap
|
|
214
212
|
preq_srv_accass_values = get_object_list(fc_preq_detail[:REQUISITION_SRV_ACCASS_VALUES], PreqServicesAccassValues.to_s)
|
215
213
|
tb_return = get_object_list(fc_preq_detail[:RETURN], Return.to_s)
|
216
214
|
|
217
|
-
{
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
215
|
+
retcode = tb_return.detect{|r| r.type == 'E'}
|
216
|
+
|
217
|
+
if retcode
|
218
|
+
api_return_error(retcode)
|
219
|
+
else
|
220
|
+
api_return_success({
|
221
|
+
preq_items: preq_items,
|
222
|
+
preq_acct_assignment: preq_acct_assignment,
|
223
|
+
preq_text: preq_text,
|
224
|
+
preq_limits: preq_limits,
|
225
|
+
preq_contract_limits: preq_contract_limits,
|
226
|
+
preq_services: preq_services,
|
227
|
+
preq_services_texts: preq_services_texts,
|
228
|
+
preq_srv_accass_values: preq_srv_accass_values,
|
229
|
+
tb_return: tb_return,
|
230
|
+
})
|
231
|
+
end
|
232
|
+
|
228
233
|
end
|
229
234
|
|
230
235
|
def preq_release_strategy_info(preq = 0, item = "00000", rel_code = "")
|
@@ -245,14 +250,19 @@ module RnSap
|
|
245
250
|
preq_release_final = get_object_list(fn_preq_rel_strat_info[:RELEASE_FINAL], PreqReleaseFinal.to_s)
|
246
251
|
tb_return = get_object_list(fn_preq_rel_strat_info[:RETURN], Return.to_s)
|
247
252
|
|
248
|
-
{
|
249
|
-
preq_gen_release_info: preq_gen_release_info,
|
250
|
-
preq_release_prerequisites: preq_release_prerequisites,
|
251
|
-
preq_release_posted: preq_release_posted,
|
252
|
-
preq_release_final: preq_release_final,
|
253
|
-
tb_return: tb_return,
|
254
|
-
}
|
253
|
+
retcode = tb_return.detect{|r| r.type == 'E'}
|
255
254
|
|
255
|
+
if retcode
|
256
|
+
api_return_error(retcode)
|
257
|
+
else
|
258
|
+
api_return_success({
|
259
|
+
preq_gen_release_info: preq_gen_release_info,
|
260
|
+
preq_release_prerequisites: preq_release_prerequisites,
|
261
|
+
preq_release_posted: preq_release_posted,
|
262
|
+
preq_release_final: preq_release_final,
|
263
|
+
tb_return: tb_return,
|
264
|
+
})
|
265
|
+
end
|
256
266
|
end
|
257
267
|
|
258
268
|
def preq_release(preq = 0, rel_code = "", no_commit="", item="00000", use_exceptions="")
|
@@ -276,11 +286,18 @@ module RnSap
|
|
276
286
|
fn_preq_exec_release.invoke
|
277
287
|
|
278
288
|
tb_return = get_object_list(fn_preq_exec_release[:RETURN], Return.to_s)
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
289
|
+
|
290
|
+
retcode = tb_return.detect{|r| r.type == 'E'}
|
291
|
+
|
292
|
+
if retcode
|
293
|
+
api_return_error(retcode)
|
294
|
+
else
|
295
|
+
api_return_success({
|
296
|
+
status_new: fn_preq_exec_release[:REL_STATUS_NEW],
|
297
|
+
indicator_new: fn_preq_exec_release[:REL_INDICATOR_NEW],
|
298
|
+
tb_return: tb_return,
|
299
|
+
})
|
300
|
+
end
|
284
301
|
end
|
285
302
|
|
286
303
|
def po_detail(po = 0)
|
@@ -291,6 +308,15 @@ module RnSap
|
|
291
308
|
[]
|
292
309
|
end
|
293
310
|
|
311
|
+
# Performs SAP Authority check on a certain authorization
|
312
|
+
# object. For more details on SAP authorization,
|
313
|
+
# this link will provide good details:
|
314
|
+
# * https://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/a92195a9-0b01-0010-909c-f330ea4a585c&overridelayout=true
|
315
|
+
# * https://blogs.sap.com/2020/11/14/some-important-information-about-sap-authorization-objects/
|
316
|
+
# @param user [String] SAP userid for which authorization will be performed
|
317
|
+
# @param auth_object [String] Authorization object to be checked in SAP
|
318
|
+
# @param field [String] Authorization field checked within the authorization object
|
319
|
+
# @param value [String] Authorization value to be checked. (i.e. 01 for creation, 02 for change, XX for release code)
|
294
320
|
def authority_check(user, auth_object, field, value)
|
295
321
|
#-- Execute AUTHORITY_CHECK
|
296
322
|
function = @conn.get_function('AUTHORITY_CHECK')
|
@@ -305,21 +331,26 @@ module RnSap
|
|
305
331
|
fun_call.invoke
|
306
332
|
rescue Exception => ex
|
307
333
|
if ex.to_s.include?('USER_IS_AUTHORIZED')
|
308
|
-
|
309
|
-
rc: 0,
|
310
|
-
message: 'Authorized.'
|
311
|
-
}
|
334
|
+
api_return(0,'Authorized');
|
312
335
|
else
|
313
|
-
|
314
|
-
rc: 10,
|
315
|
-
message: 'User is not authorized.',
|
316
|
-
exception: ex
|
317
|
-
}
|
336
|
+
api_return(8,'User is not authorized.')
|
318
337
|
end
|
319
338
|
end
|
320
339
|
|
321
340
|
end
|
322
341
|
|
342
|
+
def api_return_success(obj=nil )
|
343
|
+
UtilHelper.api_return(0, 'Success!', obj)
|
344
|
+
end
|
345
|
+
|
346
|
+
def api_return_error(obj={}, exception=nil)
|
347
|
+
UtilHelper.api_return(8, 'Error.', obj, exception)
|
348
|
+
end
|
349
|
+
|
350
|
+
def api_return(rc=0, message ='', obj=nil, exception=nil )
|
351
|
+
UtilHelper.api_return(rc, message, obj, exception)
|
352
|
+
end
|
353
|
+
|
323
354
|
private
|
324
355
|
|
325
356
|
attr_writer :conn
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rnsap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rogerio Nascimento
|
@@ -46,6 +46,7 @@ extensions: []
|
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
48
|
- lib/helper/rfc_helper.rb
|
49
|
+
- lib/helper/util_helper.rb
|
49
50
|
- lib/preq_detail/preq_acct_assignment.rb
|
50
51
|
- lib/preq_detail/preq_contract_limits.rb
|
51
52
|
- lib/preq_detail/preq_item.rb
|