In [2]:
import cStringIO
import string
import adabas
from adabas.api import *
from adabas.datamap import *

In [3]:
from datetime import date
mask_date = lambda data, mask='%d-%m-%Y': date.fromordinal(int(data[2:])-364).strftime(mask)

In [4]:
DBID=12;FNR=11 # EmplTel file
STARTISN=201
RCOUNT=100
# define the mapping of data in record buffer to attributes
# of EmpTel class

# create datamap object for Employees-Telephone-List
emp=Datamap('EmplTel',
    String('personnel_id',  8),
    String('firstname',    20),
    String('m_initial',    20),
    String('lastname',     20),
    String('birth',         8),
    String('country',       3),
    String('areacode',      6),
    String('phone',        15),
    String('department',    6),
    String('jobtitle',     25),
    String('ai1',          20),
    String('ai2',          20),
    String('ai3',          20),        
    String('az1',           3),        
    String('az2',           3))

In [5]:
lines=''                                         
extraline=''                                     
alter=False                                      
c1=Adabas(rbl=256,fbl=64,sbl=32,vbl=128,ibl=0)   
c1.cb.dbid=DBID
c1.cb.fnr=FNR
c1.cb.cid='1010'                                 
c1.fb.value='AA,AC,AD,AE,AH,8,U,AL,AN,AM,AO,AP,AI1-3,AZ1-2.'

In [5]:
c1.cb.isn=STARTISN                                                                 
# use emp Datamap on record buffer                                                 
emp.buffer=c1.rb                                                                   
emp.offset=0                                                                       
                                                                                  
count=0                                                                            
                                                                                   
try:                                                                               
    for count in range(RCOUNT):                                                    
        c1.readByIsn(getnext=1)                                                    
                                                                                    
        lines += "{} - {:35} - {} -ai1 {} -ai2 {} -ai3 {} - {} - {}\n".format(
                emp.personnel_id,
                string.capwords(emp.lastname+', '+emp.firstname+' '+emp.m_initial),
                mask_date(emp.birth, mask ='%d/%m/%Y'),
               # emp.country,
               # emp.areacode,
               # emp.phone,
               # emp.department,
               # string.capwords(emp.jobtitle),
                emp.ai1, emp.ai2, emp.ai3, emp.az1, emp.az2)
    lines+= 'Sequential Read by ISN returned '+str(count+1)+' record(s).'
except DataEnd:
    extraline+= 'Sequential Read by ISN returned '+str(count)+' record(s).'
    pass
except DatabaseError, (line, apa):
    extraline+='Database Error:'+line

In [6]:
print lines


11400327 - Speck, Frank Heinz                  - 22/07/1952 -ai1 SCHILLERSTR.5 -ai2 6100 DARMSTADT -ai3  - GER - 
11400328 - Schilling, Anna Hedwig              - 12/01/1949 -ai1 KASTANIENAL.12 -ai2 6100 DARMSTADT -ai3  - GER - 
11100102 - Schindler, Edgar Peter              - 04/12/1962 -ai1 BUCHENLANDWEG 84 -ai2 6148 HEPPENHEIM -ai3  - GER - ENG
11100105 - Schirm, Christian                   - 15/03/1961 -ai1 SIEMENSSTR.4 -ai2 6100 DARMSTADT -ai3  - GER - ENG
11100106 - Schmitt, Reiner Georg               - 13/02/1955 -ai1 WORMSERSTR.23 -ai2 6100 DARMSTADT -ai3  - GER - ENG
11100107 - Schmidt, Helga Gerda                - 26/05/1961 -ai1 AM ELFENGRUND 3 -ai2 6148 HEPPENHEIM -ai3  - GER - FRE
11100108 - Schneider, Wolfgang                 - 22/04/1957 -ai1 DORNHEIMERWEG 12 -ai2 6100 GRIESHEIM -ai3  - GER - 
11100109 - Schneider, Christa Eva-maria        - 23/11/1962 -ai1 DORNHEIMERWEG 23 -ai2 6100 GRIESHEIM -ai3  - GER - FRE
11100110 - Bungert, Georg Peter                - 16/03/1957 -ai1 GUTENBERGSTR. 36 -ai2 6108 WEITERSTADT -ai3  - ENG - GER
11100111 - Thiele, Gabriele Henriette          - 11/11/1962 -ai1 SCHILLERSTR. 33 -ai2 6100 DARMSTADT -ai3  - GER - FRE
11100112 - Thoma, Gerhardt Klaus               - 17/04/1958 -ai1 MOZARTSTR. 33 -ai2 6105 OBERRAMSTADT -ai3  - GER - ENG
11100113 - Treiber, Klaus Peter                - 07/03/1956 -ai1 BRAHMSSTR. 11 -ai2 6148 HEPPENHEIM -ai3  - GER - ENG
11100114 - Unger, Klaus Peter                  - 09/08/1952 -ai1 BACHSTR 10 -ai2 6108 WEITERSTADT -ai3  - GER - ENG
11100116 - Vogel, Roland Karl                  - 17/09/1955 -ai1 WILHELMSTR.24 -ai2 6100 DARMSTADT -ai3  - GER - ENG
11100117 - Waber, Martin Edwin                 - 11/05/1957 -ai1 ERBACHERSTR. 78 -ai2 6700 HEIDELBERG -ai3  - GER - ENG
11100118 - Wagner, Rolf Erwin                  - 23/08/1960 -ai1 WEINBERSTR 89 -ai2 6105 OBERRAMSTADT -ai3  - GER - 
11300320 - Brunner, Helmut Friedrich           - 11/05/1959 -ai1 AM LOEWENTOR 7 -ai2 6100 DARMSTADT -ai3  - GER - ENG
11300321 - Buchert, Manfred Frank              - 24/09/1958 -ai1 ERBACHERSTR. 67 -ai2 6105 OBERRAMSTADT -ai3  - GER - ENG
11300322 - Burkner, Franz Willi                - 16/03/1965 -ai1 KIEFERNWALDSTR.10 -ai2 6104 SEEHEIM -ai3  - GER - ENG
11300323 - Damm, Wolfgang Werner               - 14/08/1967 -ai1 RHEINSTR.135 -ai2 6100 GRIESHEIM -ai3  - GER - ENG
11300325 - Decker, Walter Reinhold             - 09/10/1955 -ai1 BISMARKSTR 2 -ai2 6108 WEITERSTADT -ai3  - GER - ENG
11300326 - Dinkel, Heidi Maria                 - 13/06/1966 -ai1 STRESEMANNSTR.6 -ai2 6100 DARMSTADT -ai3  - GER - 
11300327 - Drescher-tiehle, Marie Margot       - 30/06/1957 -ai1 AM FUSSWEG 12 -ai2 6105 OBERRAMSTADT -ai3  - GER - FRE
11300328 - Eitel, Alfdred Detlef               - 01/05/1955 -ai1 FRANKFURTERSTR. 133 -ai2 6100 DARMSTADT -ai3  - GER - ENG
11300329 - Eckert, Karl Ewald                  - 11/03/1948 -ai1 FORSTWEG 22 -ai2 6105 OBERRAMSTADT -ai3  - GER - ENG
11300330 - Eckhardt, Richard Wilhelm           - 09/05/1945 -ai1 BRESLAUERPL. 4 -ai2 6100 DARMSTADT -ai3  - GER - ENG
11300331 - Faulhaber, Albert Anton             - 01/12/1952 -ai1 SAALBAUSTR. 6 -ai2 6100 DARMSTADT -ai3  - GER - 
11300332 - Falk, Anette Cornelia               - 29/06/1959 -ai1 BISMARKSTR. 45 -ai2 6148 HEPPENHEIM -ai3  - GER - 
11300334 - Frei, Eva Maria                     - 21/04/1962 -ai1 SCHEFFELSTR. 107 -ai2 6148 HEPPENHEIM -ai3  - GER - FRE
11700311 - Fischer, Fritz                      - 26/06/1948 -ai1 RHEINSTR.22 -ai2 6100 GRIESHEIM -ai3  - GER - ENG
11700312 - Graf, Heinz Guenther                - 28/07/1960 -ai1 SCHLOSSWEG 1 -ai2 6100 GRIESHEIM -ai3  - GER - ENG
11700313 - Gruber, Florian Alois               - 28/02/1959 -ai1 DIEBURGERSTR. 54 -ai2 6100 DARMSTADT -ai3  - GER - ENG
11700314 - Heinzelmann, Gerhard Roland         - 01/11/1958 -ai1 VIKTORIASTR. 43 -ai2 6100 DARMSTADT -ai3  - GER - 
11700315 - Heldmann, Johanna Karola            - 03/11/1964 -ai1 DARMSTAEDTERWEG 34 -ai2 6104 SEEHEIM -ai3  - GER - 
11700316 - Hirsch, Charlotte Barbara           - 07/05/1963 -ai1 MITTELGASSE 12 -ai2 6104 SEEHEIM -ai3  - GER - ENG
11700317 - Jung, Ernst Horst                   - 27/05/1955 -ai1 FRANKENSTEINERSTR.56 -ai2 6100 GRIESHEIM -ai3  - GER - 
11700318 - Kayser, Rainer Udo                  - 19/09/1960 -ai1 JAEGERTOR 7 -ai2 6100 DARMSTADT -ai3  - GER - ENG
11700319 - Kaiser, Reiner Ulf                  - 30/10/1958 -ai1 OLDENBURGERSTR 123 -ai2 6105 OBERRAMSTADT -ai3  - GER - FRE
11700320 - Katzenmeier, Susanne Bettina        - 06/12/1965 -ai1 DONNERSBERRING 124 -ai2 6100 DARMSTADT -ai3  - GER - 
11700321 - Kessler, Petra Silvia               - 23/02/1961 -ai1 LIEBFRAUENWEG 12 -ai2 6148 HEPPENHEIM -ai3  - GER - 
11700322 - Leopold, Sabine Gisela              - 07/06/1955 -ai1 FRIEDRICHEBERTSTR. 2 -ai2 6100 DARMSTADT -ai3  - GER - 
11700323 - List, Franz Ferdinand               - 20/04/1962 -ai1 SCHUBERTSTR 31 -ai2 6100 GRIESHEIM -ai3  - GER - ENG
11700324 - Moeller, Marion Mechthild           - 12/08/1964 -ai1 LENAUWEG 4 -ai2 6105 OBERRAMSTADT -ai3  - GER - ENG
11700325 - Orth, Patrizia Elisabeth            - 19/07/1956 -ai1 TELEMANNWEG 32 -ai2 6100 DARMSTADT -ai3  - GER - FRE
11400323 - Sommer, Otto Wilhelm                - 30/07/1945 -ai1 TULPENSTR. 15 -ai2 6100 DARMSTADT -ai3  - GER - ENG
11400325 - Spaeht, Klaus Peter                 - 10/03/1955 -ai1 FLIEDERWEG 11 -ai2 6100 DARMSTADT -ai3  - GER - ENG
11300333 - Frey, Eva-maria Caroline            - 04/08/1968 -ai1 FRIEDRICHSTR.8 -ai2 6148 HEPPENHEIM -ai3  - GER - FRE
11300324 - Dammbach, Florian Philipp           - 21/08/1964 -ai1 LICHTWIESENWEG 5 -ai2 6100 DARMSTADT -ai3  - GER - ENG
11222222 - Martens, Antonia Maria              - 01/06/1952 -ai1 C/O H.KOERBER -ai2 AM DORNKAMP 20 -ai3 4590 CLOPPENBURG - GER - TUR
11100301 - Bergmann, Hans Wilhelm              - 03/12/1941 -ai1 MARTIN-LUTHER-STR 8 -ai2 6000 FRANKFURT -ai3  - GER - ENG
11100303 - Falter, Kristina Maria              - 08/07/1961 -ai1 C/O CLAASEN -ai2 WIESENGRUND 10 -ai3 6100 DARMSTADT - GER - 
11100304 - Schmidt, Wolfgang Johannes          - 04/05/1943 -ai1 POSTFACH 67 -ai2 MANDELA-WEG 8 -ai3 6000 FRANKFURT - GER - ENG
11100305 - Blau, Sarah                         - 04/07/1954 -ai1 ESCHSTRASSE 4 -ai2 6000 FRANKFURT -ai3  - GER - ENG
11100308 - Mueller, Dieter Peter               - 30/05/1953 -ai1 BAHNHOFSTRASSE 3 -ai2 6100 DARMSTADT -ai3  - GER - 
11100309 - Lankatilleke, Lalith Armarinde      - 03/06/1950 -ai1 HELENE-LANGE-STRASSE -ai2 6000 FRANKFURT -ai3  - ENG - IND
11100310 - Frinke, Dieter                      - 07/12/1949 -ai1 MOZARTSTRASSE 32 -ai2 6236 ESCHBORN -ai3  - GER - 
11100311 - Becker, Hermann Hans                - 28/05/1951 -ai1 GOETHESTRASSE 5 -ai2 6000 FRANKFURT -ai3  - GER - 
11100312 - Mayer, Alfons Karl                  - 07/07/1948 -ai1 C/O MARIA WEGE -ai2 KAISERSTRASSE 4 -ai3 6000 FRANKFURT - GER - 
11100313 - Weiss, Klemens Peter                - 31/05/1961 -ai1 PAPPELALLEE 8 -ai2 6000 FRANKFURT -ai3  - GER - 
11100315 - Merten, Gloria Elisabeth            - 02/11/1949 -ai1 C/O HERMANN BECKER -ai2 GOETHESTRASSE 4 -ai3 6000 FRANKFURT - GER - 
11100316 - Ramser, Heinz Ewald                 - 23/12/1978 -ai1 GESCHWISTER-SCHOLL 6 -ai2 4590 CLOPPENBURG -ai3  - GER - ENG
11100317 - Dorsch, Alfons Fritz                - 29/02/1948 -ai1 BERGSTRASSE 11 -ai2 2900 OLDENBURG -ai3  - GER - RUS
11100318 - Vetter, Mara Josefa                 - 27/09/1959 -ai1 SCHLOSS-STRASSE 2 -ai2 2902 RASTEDE -ai3  - GER - ENG
11100319 - Frick, Michael Georg                - 03/04/1956 -ai1 BAHNHOFSTRASSE 4 -ai2 2900 OLDENBURG -ai3  - GER - ENG
11100321 - Imam, Fatima                        - 21/05/1959 -ai1 MUSIKANTENSTRASSE 3 -ai2 2800 BREMEN -ai3  - ARB - GER
11100322 - Bares, Salia                        - 28/06/1952 -ai1 WEINBERGALLEE 42 -ai2 2800 BREMEN -ai3  - TUR - GER
11100323 - Altinok, Enis                       - 16/04/1958 -ai1 KASTANIENALLEE 6 -ai2 2800 BREMEN -ai3  - TUR - GER
11100324 - Maier, Karl Gustav                  - 19/07/1953 -ai1 ROSENSTRASSE 13 -ai2 2800 BREMEN -ai3  - GER - TUR
11100325 - Borsch, Holger Jan                  - 12/03/1964 -ai1 JUDAS-THADAEUSSTR 8 -ai2 2800 BREMEN -ai3  - GER - 
11100326 - Weiss, Jens Torsten                 - 18/12/1944 -ai1 HILDEGARD V BINGEN 7 -ai2 2800 BREMEN -ai3  - GER - 
11100327 - Weiser, Martin Karl                 - 15/06/1952 -ai1 BAHNHOFSTRASSE 7 -ai2 2800 BREMEN -ai3  - GER - 
11100328 - Berghaus, Rose Maria                - 05/09/1943 -ai1 TOEPLITZSTRASSE 8 -ai2 7000 STUTTGART -ai3  - GER - ENG
11100329 - Barthel, Peter Josef                - 01/02/1959 -ai1 OSTERSTRASSE 49 -ai2 7000 STUTTGART -ai3  - GER - ENG
11200301 - Heck, Cornelia Marianne             - 09/02/1952 -ai1 MARIENSTRASSE 18 -ai2 8000 MUENCHEN -ai3  - GER - ENG
11200302 - Ramser, Hermann                     - 27/08/1942 -ai1 POSTSTRASSE 12 -ai2 8000 MUENCHEN -ai3  - GER - 
11300312 - Ramser, Marika                      - 19/08/1955 -ai1 WILHELMPLATZ 8 -ai2 6050 OFFENBACH -ai3  - GER - FRE
11200303 - Kramer, Ulrich Gert                 - 12/08/1949 -ai1 KARLSTRASSE 69 -ai2 8000 MUENCHEN -ai3  - GER - 
11200304 - Gruenberg, Ester                    - 07/04/1951 -ai1 ROSENWEG 17 -ai2 6103 GRIESHEIM -ai3  - GER - ENG
11200305 - Kleene, Elvira Karla                - 07/11/1947 -ai1 LILIENSTRASSE 13 -ai2 6000 FRANKFURT -ai3  - GER - ENG
11200306 - Malinov, Zinka                      - 01/06/1952 -ai1 C/O JOSEF MAIER -ai2 POSTFACH 334 -ai3 KARFUNKELWEG 22 - YUG - GER
11200307 - Heilbrock, Clemens                  - 09/08/1953 -ai1 OPELSTRASSE 49 -ai2 6000 FRANKFURT -ai3  - GER - 
11200308 - Ptah, Merit                         - 17/10/1948 -ai1 SCHLOEMERWEG 55 -ai2 6236 ESCHBORN -ai3  - ARB - ENG
11200309 - Dinesen, Tania Isak                 - 09/08/1944 -ai1 KOENIGIN LUISE STR 4 -ai2 6050 OFFENBACH -ai3  - GER - 
11200312 - Bloemer, Johannes Manfred           - 07/11/1979 -ai1 ZWISCHENSTRASSE 25 -ai2 6000 FRANKFURT -ai3  - GER - 
11200313 - Leibacher, Simon Benjamin           - 15/12/1952 -ai1 DRUEDINGSTRASSE 18 -ai2 6000 FRANKFURT -ai3  - GER - ENG
11200314 - Becker, Horst Walter                - 06/06/1958 -ai1 OSTERESCH 37 -ai2 6080 GROSS-GERAU -ai3  - GER - 
11300301 - Huch, Reinhild Martha               - 12/09/1952 -ai1 WEINERTSTR. 1 -ai2 6000 FRANKFURT -ai3  - GER - ENG
11300303 - Goldstein, Petra Maria              - 21/09/1951 -ai1 WALDWEG 8 -ai2 8190 WOLFRATSHAUSEN -ai3  - GER - ENG
11300305 - Kloster, Frank Peter                - 09/08/1961 -ai1 SEEWEG 9 -ai2 8130 STARNBERG -ai3  - GER - ENG
11300306 - Ruegner, Georg Hans                 - 10/12/1962 -ai1 SCHWALMSTR. 9 -ai2 6100 DARMSTADT -ai3  - GER - 
11300308 - Dollinger, Harald                   - 08/08/1951 -ai1 GRUENSTR. 5 -ai2 POSTFACH 123445 -ai3 2903 BAD ZWISCHENAHN - GER - 
11300309 - Kramer, Bernhard                    - 09/06/1945 -ai1 AN DER SCHNEISE 9 -ai2 6000 FRANKFURT -ai3  - GER - 
11300310 - Heschmann, Anton Heinrich           - 07/09/1945 -ai1 MEERKATZSTR. 8 -ai2 6000 FRANKFURT -ai3  - GER - ENG
11300313 - Aeckerle, Susanne Birgit            - 21/03/1956 -ai1 GUNTRUMPLATZ 8 -ai2 7000 STUTTGART -ai3  - GER - ENG
11300314 - Mohrdiek, Gitta Beatrice            - 12/09/1979 -ai1 AN DER BAHN 34 -ai2 4590 CLOPPENBURG -ai3  - GER - ENG
11300315 - Friese, Gudrun Helga                - 04/05/1956 -ai1 GERHARDTSTR. 78 -ai2 6100 DARMSTADT -ai3  - GER - ITA
11300316 - Kante, Gabriele Susanne             - 09/08/1954 -ai1 WERNERSTR. 90 -ai2 7000 STUTTGART -ai3  - GER - ENG
11300317 - Mueller, Horst Werner               - 09/09/1956 -ai1 SCHWIMMBADSTR.9 -ai2 6103 GRIESHEIM -ai3  - GER - POR
11300319 - Yalcin, Suleyman                    - 19/08/1958 -ai1 KANTSTR. 199 -ai2 8000 MUENCHEN -ai3  - TUR - GER
11400303 - Wallinger, Martin Frank             - 21/09/1946 -ai1 WEEDRING 12 -ai2 6236 ESCHBORN -ai3  - GER - ENG
Sequential Read by ISN returned 100 record(s).

In [ ]:
print extraline

In [ ]: