Project - ERP-MES Interface


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
# 1  
Tools Project - ERP-MES Interface

Hi all,

that's my personal "war story" and probably a beginning of a never ending love story.

It is roughly 8 weeks ago, I've got a training for a new ERP system. In front of the training my boss mentioned it based on a unix. Great, I have been always interested in but I don't know why I haven't invest time in it. Anyway, the training was great and it has awaken my passion.

Now, I try to invest every second to get more knowledge and especially the shell scripting and programming brings my heart to beat. That's the love story

Back to my "war story". I am responsible for testing the interface between an ERP and MES System. The problem it takes ages to get test data in order to verify it. Supplier pushed out deliveries for months. Honestly, supplier has a lot of more important stuff to do in order to get the ERP System running but I HAVE TO TEST THE INTERFACE. Hence, I've decided to write a shell script in order to simulate the interface communication and begin testing. My intention is to post the result and share result in this forum. (probably other rookies like me will get benefit)

ERP-MES Interface:

Output: UTF-8 file (without Byte Order Mark)

Content of UTF File: string (1000 digits) & CR & LF
- Creation of UTF FIle via BASH Script

Content of BASH Script:
- function to modify variabels (numeric, decimal, character)
- merge all variables to one string
- create UTF File with string

1. Question regarding the result of variable output (quoted/unquoted) --> https://www.unix.com/shell-programmin...-function.html
2. Question regarding formatting decimal value --> https://www.unix.com/shell-programmin...#post302780189

Code:
#!/bin/bash
fct_var_mod() {
        case "$1" in

        "C")    if [ ${#2} -eq "$3" ]
                then    value="$2"
                else    value="$(printf "%-$3.$3s" "$2")"
                fi;;
        "N")    value="$(printf "%0$3d" "$2" )"
        value="$(printf "%.$3s" "$value" )";;
        "D")    value="$(printf "%-$3.$3s" "$2" )"
        value="$(printf "%+0$3.$4f" "$value")";;
        esac
}
order_no_t=C; order_no=ORDER005-010010; order_no_l=40
fct_var_mod $order_no_t $order_no $order_no_l
order_no="$value"; echo "$order_no"
proc_no_T=N; proc_no=1283; proc_no_l=8
fct_var_mod $proc_no_T $proc_no $proc_no_l
proc_no="$value"; echo "$proc_no"
qty_t=D; qty_val=-12345678.123; qty_l=13; qty_p=3
fct_var_mod $qty_t $qty_val $qty_l $qty_p
qty_val="$value"; echo "$qty_val"

Diary:
2nd of March 2013 - Let's go
3rd of March 2013 - got great comments from Don Cragun
4th of March 2013 - added comments and mods from Don Cragun to basic post (#1)
14th of March 2013 - added formatting numeric and decimal values

Last edited by Noobie1995; 03-14-2013 at 07:16 AM.. Reason: cumulative editing
# 2  
I have no idea what you're trying to do and the variable names don't make any sense to me, but the following is a reformatted, simplified version of your script that is a valid bash script (and is easier for humans to read) that produces some output that may be what you want:
Code:
#!/bin/bash
fkt_auffuellen() {
        case $1 in
        (C)     if [ ${#2} -eq "$3" ]
                then    value="$2"
                else    value="$(printf "%-$3.$3s" "$2")"
                fi;;
        (N)     ;;
        (D)     ;;
        esac
}
vorg_nr_t=C
vorg_nr="AUFTRAG005-010010"
vorg_nr_l=40
fkt_auffuellen $vorg_nr_t $vorg_nr $vorg_nr_l
vorg_nr="$value"
echo "$vorg_nr"

Note that some double-quotes were added and others were removed, an if statement was removed by changing the printf format string, and I added opening parentheses to the case matching patterns. (The opening parentheses are allowed but are not required by bash, but if you're editing a larger script with an editor such as vi with a showmatch option, having them makes it much easier to find mismatched parentheses in places where they do matter.)

Hope this helps.
This User Gave Thanks to Don Cragun For This Post:
# 3  
Lightbulb

Good evening or should I say good morning,

I am so sorry I have no idea why my pasted code shows this terrible format. Probably, human error.

I agree with comments that variables names makes no sense. These are still in german. I will edit it tomorrow.

The idea to fill the string and if the lenghth is already longer than passed in the function to cut the string is great!!!!!

I will also try to highlight the intention of this project tomorrow. As mentioned it is my first one.

Many Thanks

Noobie1995
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

7 More Discussions You Might Find Interesting

1. News, Links, Events and Announcements

A new project was posted on The UNIX and Linux Forums project board.

A new project was posted on your project board. Project title: Bash Shell Tutoring Estimated Budget: $50/hr Start date: Immediately Required skills: Linux, Bash, Shell, UNIX I work as a datawarehouse designer and developer. Although I usually stick to the role of an analyst,... (0 Replies)
Discussion started by: Neo
0 Replies

2. Shell Programming and Scripting

ERP - MES Interface - several function

Hi all, I am a rookie regarding shell script programming, YET!! :-) Hence, I have choosen a problem from my bad side of life (my job) and I wil try to solve it by using a shell script and get knowledge concerning shell script programming. Question: As you can see I have already figured... (5 Replies)
Discussion started by: Noobie1995
5 Replies

3. UNIX and Linux Applications

CK-ERP (Open Source Edu / ERP / CRM / MRP) v.0.30.1 released

Hi, folks, A new release, v.0.30.1, of CK-ERP, has been posted, at SourceForge.Net, sourceforge.net/projects/ck-erp . New features comprise seven new modules (ck-teacher, ck-counsellor, ck-student, ck-applicant, ck-family, ck-registrar, ck-eduadmin) for deployment within educational... (0 Replies)
Discussion started by: chiukay
0 Replies

4. SCO

Change SCO - GUI or Desktop interface to DOS based interface

Hi all I have installed a demo version of SCO OpenServer 5.0.2, I finally found it is Desktop Interface, I would like to know how to change its interface to dos based interface? If you have any ideas, please tell me then. Thank you (2 Replies)
Discussion started by: TinhNhi
2 Replies

5. Solaris

Command line Interface or GUI Interface not shown on solaris

Dear all, I am a newbie in solaris and I need your advice. I have a Solaris version 5.9 installed on Sunfire V240. I am able to ssh the machine from putty remotely. My problem is that I cannot see the display from KVM switch I have connected to it. I need also to be able to see the GUI... (2 Replies)
Discussion started by: mbouster
2 Replies

6. Programming

Compilation problem with Posix Mes Q

Hi #include "training.h" #include <mqueue.h> // for posix mqs int main(int argc,char *argv) { int opt,flag; mqd_t msq; // msg q type flag=O_RDWR|O_CREAT; while((opt =getopt(argc,argv,"e")) != -1) { switch(opt) { case 'e': ... (4 Replies)
Discussion started by: kumaran_5555
4 Replies

7. UNIX and Linux Applications

Linux based Open Source ERP System - CK-ERP

Hi, folks, I have developed CK-ERP, which is an open source accounting / MRP / ERP / CRM system that runs on top of multiple middlewares. It provides accounting and back office functionalities to SMEs and utilizes the underlying middleware to administer accounts/groups. Details about and... (0 Replies)
Discussion started by: chiukay
0 Replies

Featured Tech Videos