rnsap 0.4.2 → 0.4.5

Sign up to get free protection for your applications and to get access to all the features.
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: []