rnsap 0.4.2 → 0.4.5

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rnsap.rb +53 -25
  3. metadata +5 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ac1b595002650c1c9c9c09c9b4903b47835f2212b2b8e8283c8ea16f61a67ba7
4
- data.tar.gz: 59a6dc350e3ae1ffe4cdbc7c0190c4e4ab3eb0e3d0a43b61ec9b0ec40f1f45d3
3
+ metadata.gz: 6caaea338a33ed4b7636f96d2b4e85fa9c8c1437c7ca472aa6be56998d4c8bef
4
+ data.tar.gz: 72a6791919a49cdcd6ff0a8a7cea274bdd60c38cd4057680d332f24e4dbdf1e6
5
5
  SHA512:
6
- metadata.gz: ff0e3f429b4338d3a0668ccea5301c621603b7b480941a0b7bae4a17f3266b8243f7fd685d8a7e9a540f15ba49ebc470bc034ac7a5ecb77c809525aa9c4d2c66
7
- data.tar.gz: d78f451e59c5c3522f13c7b4c4e856c9c61352d259ed3c645e194aa31c28628bab041bf08ceca5087b48ff5c8234c6f6c844e2ccd7a2f6595a7af542249254da
6
+ metadata.gz: 6fc660ac491245dde346f49d63059f525234c2e391ffcae8331a3219ead07032f40d341dcaaca03ee75547e602ca71071f0113089849785c7b7e74261de182f8
7
+ data.tar.gz: 982047ae5d4236955c87b8c86b94d75d6a69043bff548ff460e6654e5e8ec7bd3eb0a33cfc944e108053f6015462636d1777d9953d5a9c694b0d515978528f50
data/lib/rnsap.rb CHANGED
@@ -33,6 +33,9 @@ module RnSap
33
33
  # keeps the SAP connection alive during the Sap instance lifecycle
34
34
  attr_reader :conn
35
35
 
36
+ INT_TYPES ||= ['b','N']
37
+ FLOAT_TYPES ||= ['P']
38
+ DATE_TYPES ||=['D']
36
39
  # Constructor requires to receive connection parameters,
37
40
  # a hash containint necessary information to logon to SAP
38
41
  # @param conn_parms [Hash] SAP Connection Parameters
@@ -45,35 +48,29 @@ module RnSap
45
48
  conn.disconnect
46
49
  end
47
50
 
48
- def commit()
51
+ def commit(conn)
52
+
49
53
  #-- Execute BAPI_TRANSACTION_COMMIT
50
- fn_commit = @conn.get_function('BAPI_REQUISITION_RELEASE')
54
+ fn_commit = conn.get_function('BAPI_TRANSACTION_COMMIT')
51
55
  fn_commit = fn_commit.get_function_call
52
- fn_commit[:NUMBER] = preq
53
- fn_commit[:REL_CODE] = rel_code
54
- fn_commit[:ITEM] = item
55
- fn_commit[:USE_EXCEPTIONS] = use_exeptions
56
- fn_commit[:NO_COMMIT_WORK] = no_commit
56
+ fn_commit[:WAIT] = 'X'
57
+
57
58
  fn_commit.invoke
58
- tb_return = get_object_list(fn_commit[:RETURN], Return.to_s)
59
+
59
60
  {
60
- tb_return: tb_return,
61
+ tb_return: fn_commit[:RETURN],
61
62
  }
62
63
  end
63
64
 
64
- def rollback()
65
+ def rollback(conn)
65
66
  #-- Execute BAPI_TRANSACTION_ROLLBACK
66
- fn_rollback = @conn.get_function('BAPI_REQUISITION_RELEASE')
67
+ fn_rollback = conn.get_function('BAPI_TRANSACTION_ROLLBACK')
67
68
  fn_rollback = fn_rollback.get_function_call
68
- fn_rollback[:NUMBER] = preq
69
- fn_rollback[:REL_CODE] = rel_code
70
- fn_rollback[:ITEM] = item
71
- fn_rollback[:USE_EXCEPTIONS] = use_exeptions
72
- fn_rollback[:NO_COMMIT_WORK] = no_commit
69
+
73
70
  fn_rollback.invoke
74
- tb_return = get_object_list(fn_rollback[:RETURN], Return.to_s)
71
+
75
72
  {
76
- tb_return: tb_return,
73
+ tb_return: fn_rollback[:RETURN],
77
74
  }
78
75
  end
79
76
 
@@ -154,13 +151,38 @@ module RnSap
154
151
  end
155
152
 
156
153
  list = []
154
+
157
155
  fc_read_table[:DATA].each do |row|
158
156
  obj = base_obj.class.new
159
- wa = row[:WA]
157
+ wa = row[:WA].split('|')
158
+ pos = -1
160
159
  fields_down.each do |field|
160
+ pos = pos + 1
161
161
  column = columns_hash[field.upcase]
162
- value = wa[column.offset.to_i, column.length.to_i]
163
- eval("obj.#{field} = '#{value.strip}'")
162
+ # value = wa[column.offset.to_i, column.length.to_i]
163
+ if INT_TYPES.include?(column.type)
164
+ value = wa[pos].to_i
165
+ eval("obj.#{field} = #{value}")
166
+ elsif FLOAT_TYPES.include?(column.type)
167
+ value = wa[pos].to_f
168
+ eval("obj.#{field} = #{value}")
169
+ elsif DATE_TYPES.include?(column.type)
170
+ value = wa[pos].strip
171
+ if value == '00000000'
172
+ eval("obj.#{field} = nil")
173
+ else
174
+ value = Date.new(
175
+ value[0..3],
176
+ value[4..5],
177
+ value[6..7]
178
+ )
179
+ eval("obj.#{field} = #{value}")
180
+ end
181
+ else
182
+ value = wa[pos].strip
183
+ eval("obj.#{field} = '#{value}'")
184
+ end
185
+
164
186
  end
165
187
  list << obj
166
188
  end
@@ -233,24 +255,30 @@ module RnSap
233
255
 
234
256
  end
235
257
 
236
- def preq_release(preq = 0, rel_code = "", no_commit="", item="0000", use_exeptions="X")
258
+ def preq_release(preq = 0, rel_code = "", no_commit="", item="00000", use_exceptions="")
237
259
  #Validate if will release by item ou general
238
- if item = "0000" or item = nil or item.empty?
260
+ if item == "00000" or item == nil or item.empty?
239
261
  #-- Execute BAPI_REQUISITION_RELEASE_GEN
240
262
  fn_preq_exec_release = @conn.get_function('BAPI_REQUISITION_RELEASE_GEN')
263
+ fn_preq_exec_release = fn_preq_exec_release.get_function_call
241
264
  else
242
265
  #-- Execute BAPI_REQUISITION_RELEASE
243
266
  fn_preq_exec_release = @conn.get_function('BAPI_REQUISITION_RELEASE')
267
+ fn_preq_exec_release = fn_preq_exec_release.get_function_call
244
268
  fn_preq_exec_release[:ITEM] = item
245
- fn_preq_exec_release[:USE_EXCEPTIONS] = use_exeptions
269
+ fn_preq_exec_release[:USE_EXCEPTIONS] = use_exceptions
246
270
  end
247
- fn_preq_exec_release = fn_preq_exec_release.get_function_call
271
+
248
272
  fn_preq_exec_release[:NUMBER] = preq
249
273
  fn_preq_exec_release[:REL_CODE] = rel_code
250
274
  fn_preq_exec_release[:NO_COMMIT_WORK] = no_commit
275
+
251
276
  fn_preq_exec_release.invoke
277
+
252
278
  tb_return = get_object_list(fn_preq_exec_release[:RETURN], Return.to_s)
253
279
  {
280
+ status_new: fn_preq_exec_release[:REL_STATUS_NEW],
281
+ indicator_new: fn_preq_exec_release[:REL_INDICATOR_NEW],
254
282
  tb_return: tb_return,
255
283
  }
256
284
  end
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rnsap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rogerio Nascimento
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2020-04-30 00:00:00.000000000 Z
@@ -40,7 +40,7 @@ dependencies:
40
40
  version: '0'
41
41
  description: By encapsulating SAPs NW RFC library calls, Ruby routines can access
42
42
  SAP power in a simpler manner
43
- email:
43
+ email:
44
44
  executables: []
45
45
  extensions: []
46
46
  extra_rdoc_files: []
@@ -66,7 +66,7 @@ licenses:
66
66
  - MIT
67
67
  metadata:
68
68
  source_code_uri: https://github.com/rnasc/rnsap
69
- post_install_message:
69
+ post_install_message:
70
70
  rdoc_options: []
71
71
  require_paths:
72
72
  - lib
@@ -82,7 +82,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
82
82
  version: '0'
83
83
  requirements: []
84
84
  rubygems_version: 3.2.3
85
- signing_key:
85
+ signing_key:
86
86
  specification_version: 4
87
87
  summary: Facilitates SAP RFC calls in Ruby
88
88
  test_files: []