[erlang-questions] Fwd: Packing and unpacking iso8583 messages

Nuku Ameyibor <>
Sat Sep 24 03:35:10 CEST 2016


tried it but does not seem to make a difference .

    % Create a message.
>     Msg1 = erl8583_message:new(),
>     Msg2 = erl8583_message:set(0, "0200", Msg1),
>     Msg3 = erl8583_message:set(2, "5234567890123456", Msg2),
>     AsciiMessage =erl8583_marshaller_ascii:marshal(Msg3),
>

error message below

terminate reason: {function_clause,
                      [{erl8583_marshaller_ascii,marshal_data_element,
                           [{n,fixed,4},<<"0200">>],
                           [{file,"src/erl8583_marshaller_ascii.erl"},
                            {line,168}]},
                       {erl8583_marshaller,marshal,2,

[{file,"src/erl8583_marshaller.erl"},{line,108}]},




On Sat, Sep 24, 2016 at 1:24 AM, Hernando Gisinger <>
wrote:

> Maybe ?
>
> Msg1 = erl8583_message:new(),
> Msg2 = erl8583_message:set(0, "0200", Msg1),
> Msg3 = erl8583_message:set(2, "5234567890123456", Msg2),  %% Here is Msg2,
> not Msg1
> AsciiMessage =erl8583_marshaller_ascii:marshal(Msg3),
>
> 2016-09-23 21:29 GMT-03:00 Nuku Ameyibor <>:
>
>> Dear List ,
>>
>> I am writing a program where i need to pack/unpack iso messages .
>> i am using the erl8583 <https://github.com/mgwidmann/erl8583>
>> application but i am getting some errors using the packing and unpacking
>> functions of the library .
>> i run the  test_all.erl
>> <https://github.com/mgwidmann/erl8583/blob/master/test/test_all.erl>
>> test script which runs the eunit scripts but got some errors .
>> i scaled it down and run the test_asci_marshaller.erl eunit test .
>> below is part of the output below
>>
>> eunit:test(test_ascii_marshaller).
>>> test_ascii_marshaller: pan_test...*failed*
>>> in function erl8583_marshaller_ascii:marshal_data_element/2 (src/erl8583_marshaller_ascii.erl, line 168)
>>>   called as marshal_data_element({n,fixed,4},<<"0200">>)
>>> in call from erl8583_marshaller:marshal/2 (src/erl8583_marshaller.erl, line 108)
>>> in call from test_ascii_marshaller:pan_test/0 (test/test_ascii_marshaller.erl, line 43)
>>> **error:function_clause
>>>   output:<<"">>
>>>
>>> test_ascii_marshaller: proc_code_test...*failed*
>>> in function erl8583_marshaller_ascii:marshal_data_element/2 (src/erl8583_marshaller_ascii.erl, line 168)
>>>   called as marshal_data_element({n,fixed,4},<<"0100">>)
>>> in call from erl8583_marshaller:marshal/2 (src/erl8583_marshaller.erl, line 108)
>>> in call from test_ascii_marshaller:proc_code_test/0 (test/test_ascii_marshaller.erl, line 49)
>>> **error:function_clause
>>>   output:<<"">>
>>>
>>> test_ascii_marshaller: amount_tran_test...*failed*
>>> in function erl8583_marshaller_ascii:marshal_data_element/2 (src/erl8583_marshaller_ascii.erl, line 168)
>>>   called as marshal_data_element({n,fixed,4},<<"0200">>)
>>> in call from erl8583_marshaller:marshal/2 (src/erl8583_marshaller.erl, line 108)
>>> in call from test_ascii_marshaller:amount_tran_test/0 (test/test_ascii_marshaller.erl, line 55)
>>> **error:function_clause
>>>   output:<<"">>
>>>
>>>
>> i traced it down to this line in this line in erl8583_marshaller_ascii.erl
>>
>>> marshal_data_element({n, fixed, Length}, FieldValue) when length(FieldValue) =< Length ->
>>> IntValue = list_to_integer(FieldValue),
>>> erl8583_convert:integer_to_string(IntValue, Length);
>>>
>>>
>> i may be wrong but seems the length(FieldValue) is being passed a binary
>> string instead of as string ??
>> running some of the functions in the application eg . below
>>
>>     Msg1 = erl8583_message:new(),
>>>     Msg2 = erl8583_message:set(0, "0200", Msg1),
>>>     Msg3 = erl8583_message:set(2, "5234567890123456", Msg1),
>>>     AsciiMessage =erl8583_marshaller_ascii:marshal(Msg3),
>>>
>>
>> gives the below error
>>  a similar example is included in the test cases and i am assuming its
>> supposed to work .
>>
>> terminate reason: {undef,
>>>                       [{undefined,get_encoding,[2],[]},
>>>                        {erl8583_marshaller_ascii,marshal_field,3,
>>>                            [{file,"src/erl8583_marshaller_ascii.erl"},
>>>                             {line,109}]},
>>>                        {erl8583_marshaller,encode,6,
>>>                            [{file,"src/erl8583_marshaller
>>> .erl"},{line,238}]},
>>>                        {erl8583_marshaller,marshal,2,
>>>                            [{file,"src/erl8583_marshaller
>>> .erl"},{line,112}]},
>>>
>>
>>
>>
>>
>> Anyone have any experience with using this library and can help  point
>> out what i may be doing wrong .
>> Also are there any other libraries out there for packing and unpacking
>> iso 8583 messages in erlang .
>> searched on github but dont seem to find anything except erl8583 and some
>> forks of it  .
>> Are there other alternative approaches for this like the use of ports  to
>> help with the packing/unpacking ?
>>
>>
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> erlang-questions mailing list
>> 
>> http://erlang.org/mailman/listinfo/erlang-questions
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20160924/5f19e9a4/attachment.html>


More information about the erlang-questions mailing list