rnsap 0.4.7 → 0.4.8
Sign up to get free protection for your applications and to get access to all the features.
- 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
|