Updating Infotype 0105 "Communication" with SAPNWRFC and PERL (long !!)

When I read the SAP-Press Book "mySAP HR: Technical Principles and Programming"
(actually it was the german edition "Technische Grundlagen und Programmierung")
I came across Chapter 9.1.3 "Using BAPIs", in which some sample code is provided
for updating the email-adress in infotype 0105 "communication".
I just thought: "OK, that could be easily (and better !) done with PERL and SAPNWRFC".
My PERL-script should do the following:
1) Read subtypes 0001 and 0010 from IT 0105 via RFC
2) Compare that data against our LDAP-Server
3) call the approbiate BAPIs for updating IT 0105 via RFC
OK, here's the ABAP-code which accomplishes task #1: 
[code]
Z_EMAIL_TAB is a customer-defined structure with 3 components:
component      component-type
MY_PERNR       PERNR_D
MY_NICKN       SYSID
MY_EMAIL       COMM_ID_LONG
FUNCTION z_read_email.
""Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(MY_DATE) TYPE  ENDDA OPTIONAL
*"  TABLES
*"      Z_EMAIL STRUCTURE  Z_EMAIL_TAB
  DATA: sql_date  TYPE begda,
        sql_mandt type mandt.
  DATA: BEGIN OF wa_ldap_out,
                 pernr TYPE pernr_d,
                 nickn TYPE sysid,
                 email TYPE comm_id_long,
        END OF wa_ldap_out.
  DATA: exc_ref    TYPE REF TO cx_sy_native_sql_error,
        error_text TYPE string.
  IF my_date IS INITIAL.
    MOVE sy-datum TO sql_date.
  ELSE.
    MOVE date TO sql_date.
  ENDIF.
we use native SQL (Oracle), so we have to specify the mandant
exclude-values for PERSK refer to pensionists etc
move sy-mandt to sql_mandt.
EXEC SQL.
  open dbcur for
      SELECT DISTINCT
            pa0001.pernr,
            pa0105_0001.usrid,
            pa0105_0010.USRID_LONG
       FROM pa0000 pa0000,
            pa0001 pa0001,
            pa0105 pa0105_0001,
            pa0105 pa0105_0010
        WHERE
             pa0000.pernr =  pa0001.pernr and
             pa0000.begda <= :sql_date AND
             pa0000.endda >= :sql_date AND
             pa0001.begda <= :sql_date AND
             pa0001.endda >= :sql_date AND
             pa0001.persk NOT IN ('12' ,'13' ,'17' ,'18') AND
             pa0000.stat2 = '3' and
             (pa0001.mandt = pa0105_0001.mandt() and pa0001.pernr = pa0105_0001.pernr() and pa0105_0001.usrty() = '0001' and pa0105_0001.begda() <= :sql_date and pa0105_0001.endda(+) >= :sql_date) and
             (pa0001.mandt = pa0105_0010.mandt() and pa0001.pernr = pa0105_0010.pernr() and pa0105_0010.usrty() = '0010' and pa0105_0010.begda() <= :sql_date and pa0105_0010.endda(+) >= :sql_date) and
             pa0000.mandt =  pa0001.mandt and
             pa0000.mandt = :sql_mandt
ENDEXEC.
DO.
    EXEC SQL.
        FETCH NEXT dbcur into :wa_ldap_out
    ENDEXEC.
    IF sy-subrc <> 0.
        EXIT.
    ELSE.
        APPEND wa_ldap_out to z_email.
    ENDIF.
ENDDO.
EXEC SQL.
  close dbcur
ENDEXEC.
ENDFUNCTION.
[/code]
Using Native-SQL (we have an Oracle-Backend) saves us from looping through IT0105 twice.
(I don't like ABAP's Open-SQL, it's too limited)
Now we have a nice little table with all our employees pernr, userid and email-adress.
Let's stay on the ABAP-side and have a look at the update-function (task #3):  
[code]
FUNCTION z_upd_smtp .
""Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(MY_PERNR) TYPE  PERNR_D
*"     VALUE(MY_EMAIL) TYPE  AD_SMTPADR
*"     VALUE(MY_DATE) TYPE  BEGDA OPTIONAL
*"  TABLES
*"      BAPIRETURN STRUCTURE  BAPIRETURN1
  DATA: wa_bapireturn TYPE bapireturn1.
  IF my_date IS INITIAL.
    MOVE sy-datum TO my_date.
  ENDIF.
  CALL FUNCTION 'BAPI_EMPLOYEET_ENQUEUE'
    EXPORTING
      number        = my_pernr
      validitybegin = my_date
    IMPORTING
      return        = wa_bapireturn.
  IF wa_bapireturn-type NE 'E'.
    CLEAR wa_bapireturn.
    CALL FUNCTION 'BAPI_EMPLCOMM_CREATE'
      EXPORTING
       employeenumber        = my_pernr
       subtype               = '0010'
       validitybegin         = my_date
       validityend           = '99991231'
       communicationid       = my_email
     NOCOMMIT              =
     IMPORTING
        return                = wa_bapireturn
     EMPLOYEENUMBER        =
     SUBTYPE               =
     OBJECTID              =
     LOCKINDICATOR         =
     VALIDITYBEGIN         =
     VALIDITYEND           =
     RECORDNUMBER          =
    APPEND wa_bapireturn TO bapireturn.
    CALL FUNCTION 'BAPI_EMPLOYEET_DEQUEUE'
      EXPORTING
        number        = my_persnr
        validitybegin = my_datum
      IMPORTING
        return        = wa_bapireturn.
    APPEND wa_bapireturn TO bapireturn.
  ELSE.
    APPEND wa_bapireturn TO bapireturn.
  ENDIF.
ENDFUNCTION.
[/code]
And finally the PERL-Script (task #2):
[code]
##### Connect to LDAP-server #################################################
use Net::LDAP;
use Net::LDAP::Control;
use Net::LDAP::Constant qw(LDAP_CONTROL_PAGED);
$pagec = Net::LDAP::Control->new( LDAP_CONTROL_PAGED,
                                  size => 1000);
--- replace with your company-specific values ------------------------------ #
$ldap = Net::LDAP->new( 'your-ldap-server' ) or die "$@";
$mesg = $ldap->bind( 'CN=your-ldap-user,CN=aaaa,DC=bbbb,DC=dd,DC=eeeeeee,DC=fff',
                      password => 'your-password'
use SAPNWRFC;
--- Connection to SAP  ----------------------------------------------------- #
SAPNW::Rfc->load_config("your-config-file");
$sap_conn = SAPNW::Rfc->rfc_connect;
--- SAP RFCs --------------------------------------------------------------- #
SAP_RFCs();
--- read all Email-adresses from IT0105 ------------------------------------ #
$rd_handle_eml = $rd_eml->create_function_call;
$rd_handle_eml->invoke();
foreach $row_hashref_eml (@{$rd_handle_eml->Z_EMAIL}) {
     $MY_PERNR = $row_hashref_eml->{MY_PERNR};
     $MY_NICKN = $row_hashref_eml->;
     $MY_EMAIL = $row_hashref_eml->;
     $MY_NICKN =~ s/ //g;
     $MY_EMAIL =~ s/ //g;
     if ($MY_NICKN ne '') {
         $strMail_LDAP = nick2email(lc($MY_NICKN));
         if (lc($MY_EMAIL) ne lc($strMail_LDAP) && $strMail_LDAP ne '') {
             updIT0105("$MY_PERNR","$strMail_LDAP");
             print "SUCCESS = $i_uit_success, $MY_PERNR $strMail_LDAP\n";
     else {
do some error-processing here
$sap_conn->disconnect();
exit;
sub SAP_RFCs {
--- Read E-Mail-Adress from IT0105 ----------------------------------------- #
$rd_eml = $sap_conn->function_lookup("Z_READ_EMAIL");
--- Update E-Mail-Adress in IT0105 ----------------------------------------- #
$rd_uit = $sap_conn->function_lookup("Z_UPD_SMTP");
sub nick2email {
    $strNickn = $_[0];
    $strEMail = '';
--- our userid is stored in LDAP-item "mailnickname", just change filter to your needs #
    $filter = qq {
                  (& (mailnickname=$strNickn)
                     (givenName=*)
                     (| (objectCategory=person)
                        (objectClass=person)
    while (defined ($search = $ldap->search(
                            base   => "OU=your-base-OU,DC=bbbb,DC=dd,DC=eeeeeee,DC=fff",
                            filter => $filter,
                            attrs => ['mailNickname','mail','whenChanged'],
                            control => [ $pagec ]
        foreach $entry ($search->entries) {
            $strEMail = $entry->get_value('mail') ;
        ($resp) = $search->control( LDAP_CONTROL_PAGED );
        last unless ref $resp && $pagec->cookie($resp->cookie);
    return $strEMail;
sub updIT0105 {
    $rd_handle_uit = $rd_uit->create_function_call;
    $rd_handle_uit->MY_PERNR($_[0]);
    $rd_handle_uit->MY_EMAIL($_[1]);
    $rd_handle_uit->invoke();
    $i_uit_success = 1;
    foreach $row_hashref_uit (@{$rd_handle_uit->BAPIRETURN}) {
        if ($row_hashref_uit->{TYPE} ne 'S' && $row_hashref_uit-> ne ' ') {
            $i_uit_success = 0;
[/code]
I run this script every Friday on a virtual Windows XP machine (VMWare) scheduled with the AT-Command
and it works really fine, enjoy !!!
P.S.: I hope there aren't any typos in the code, but please check
P.P.S: Thanks again to Piers for SAPNWRC, fantastic.

Hi,
I am very interested in your solution. Can you send me the scripts?
Greeting Jan

Similar Messages

  • Error message: "the software required for communicating with Ipods and mobile phones was not installed correctly....

    2 error messages when opening itunes: "The software required for communicating with Ipods and mobile phones was not installed correctly.  Do you want Itunes to repair this for you?"  When clicking yes another message indicates not able to remove services.  Another message is: "Service (ipod service) could not be installed.  Verify that you have sufficient privileges to install system sources."  I've uninstalled all Apple services (itunes, quicktime, apple software update, apple mobiles devices support, bonjour and apple application support and reinstalled itunes/quicktime - no change in error messages.  I cannot burn CDs using Itunes.  This all seemed to happen when I updated itunes to version 10.  I have a Windows 7 64-bit operating system on a Dell Inspiron Zino HD; the Itunes software is also 64 bit.

    See the second box of  Troubleshooting issues with iTunes for Windows updates.
    tt2

  • When I click on itunes, it tells me that thesoftware required for communicating with ipods and mobil phones was not installed properly. I have not changed anything on my computer so I'm not sure what I should do? Help

    Help, When I click on itunes on my computer it tells me that the software required for communicating with ipods and mobil phone was not installed properly. I havent' changed anything. Does anyone know what I should do? Thanks

    See the second box of Troubleshooting issues with iTunes for Windows updates.
    tt2

  • TS1717 Having trouble running iTunes version 11.0.2 on a Dell Laptop running Windows 7 Professional Service Pack 1.  Keep getting an error message "the software required for communicating with iPods and mobile phones was not installed correctly..." reinst

    Having trouble when I launch iTunes (version 11.0.2) on my Dell Laptop running Windows 7 Professional (service pack 1).  I get an error message indicating software required to communicate with iPod and mobile phones was not installed correctly.  Do you want iTunes to try to repair this for you?  I normally respond with OK and it immediately tells me "could not be repaired.  Please reinstall iTunes..."  I have done this a number of times to no avail.

    I also notice Quicktime is not getting installed at all.
    That one is normal nowadays (ever since the iTunes versions 10.5.x).
    The software required for communicating with iPods and mobile phones was not installed correctly. Do you want iTunes to try to repair this for you?
    Let's try a standalone Apple Mobile Device Support install. It still might not install, but fingers crossed any error messages will give us a better idea of the underlying cause of why it's not installing under normal conditions.
    Download and save a copy of the iTunesSetup.exe (or iTunes64setup.exe) installer file to your hard drive:
    http://www.apple.com/itunes/download/
    Download and install the free trial version of WinRAR:
    http://www.rarlab.com/
    Right-click the iTunesSetup.exe (or iTunes64setup.exe), and select "Extract to iTunesSetup" (or "Extract to iTunes64Setup"). WinRAR will expand the contents of the file into a folder called "iTunesSetup" (or "iTunes64Setup").
    Go into the folder and doubleclick the AppleMobileDeviceSupport.msi (or AppleMobileDeviceSupport64.msi) to do a standalone AMDS install.
    (If it offers you the choice to remove or repair, choose "Remove", and if the uninstall goes through successfully, see if you can reinstall by doubleclicking the AppleMobileDeviceSupport.msi again.)
    Does it install (or uninstall and then reinstall) properly for you?
    If instead you get an error message during the install (or uninstall), let us know what it says. (Precise text, please.)

  • I have an iPhone 3gs and will be getting a new iPhone 4s. Once I have updated my existing 3gs with iCloud and backed up to my computer, will I be able to transfer my existing data to my new 4s using iCloud or will I need to do this from my iMac.

    I have an iPhone 3gs and will be getting a new iPhone 4s. Once I have updated my existing 3gs with iCloud and backed up to my computer, will I be able to transfer my existing data to my new 4s using iCloud or will I need to do this from my iMac.
    Thanks

    The Apple genius at the Apple store told me this would work. It failed. Basically, updating your iPhone 3GS to iOS5 wipes your 3GS of its data so you can't really do this. Some data worked. Music, photos etc didn't work at all.
    I suggest avoiding iCloud completely for a few weeks until Apple gets it working.

  • I have updated my iphone 4s with ios6 and now im not able to connect to itunes store. I can open the apps store but cannot install any app?  Anyone facing the same issue..

    I have updated my iphone 4s with ios6 and now im not able to connect to itunes store. I can open the apps store but cannot install any app?  Anyone facing the same issue..

    I have a 4S and upgraded to iOS 6 last week without any issues.
    Have you tried resetting your phone (hold the power and home buttons down together until the silver apple appears)?

  • My iphone 3gs is not communicating with itunes and in windows there is an exclamation mark

    my iphone 3gs is not communicating with itunes and in windows there is an exclamation mark next to the usb device.  tried removing itunes and reloading, all softwares up to date. just got a new iphone 4s which is on charge but not switched on and used.

    For Windows Vista/7 http://support.apple.com/kb/HT1923 uninstalling and reinstalling iTunes
    For Windows XP http://support.apple.com/kb/HT1925.
    Make sure you follow these instructions completely with the phone disconnected from the computer. After the reinstallation, reconnect the phone and it should load the new USB driver.

  • TS1538 hi i updated my iphone 4 with itunes and now i cannot use my phone as i keep getting error 16 after trying to restore my phone....i cannot afford to replace ..can any body help me...the phone is out of warrenty so apple do not want to know....pleas

    hi i updated my iphone 4 with itunes and now i cannot use my phone as i keep getting error 16 after trying to restore my phone....i cannot afford to replace ..can any body help me...the phone is out of warrenty so apple do not want to know....please any help

    https://discussions.apple.com/message/23100453#23100453
    more hits from the search
    https://www.google.dk/search?q=restore+itphone+error+16&oq=restore+itphone+error +16&aqs=chrome..69i57j0l5.11485j0j7&sourceid=chrome&espv=210&es_sm=93&ie=UTF-8

  • The software required for communicating with ipod and mobile phones was not installed correctly

    ok i've seen this in several threads and haven't found one with an anwser. the software required for communicating with ipod and mobile phones was not installed correctly. of course when you tell it to repair it does not. this has happened several times now and only cure i have found is uninstalling itunes and reinstalling. works for maybe a few weeks then does the same thing and i start all over again with uninstall and reinstall. i tunes version 10.4.1.10  64 bit running on windows 7 64 bit and trying to sync with Iphone 3gs - so anyone have a fix for this or am i stuck reinstalling itunes every few weeks???

    "The feature you are trying to use is on a network resource that is unavailable.  Click OK to try again, or enter an alternative path to a folder containing the installation package "iTunes64msi"
    (1) Download the Windows Installer CleanUp utility installer file (msicuu2.exe) from the following Major Geeks page (use one of the links under the "DOWNLOAD LOCATIONS" thingy on the Major Geeks page):
    http://majorgeeks.com/download.php?det=4459
    (2) Doubleclick the msicuu2.exe file and follow the prompts to install the Windows Installer CleanUp utility. (If you're on a Windows Vista or Windows 7 system and you get a Code 800A0046 error message when doubleclicking the msicuu2.exe file, try instead right-clicking on the msicuu2.exe file and selecting "Run as administrator".)
    (3) In your Start menu click All Programs and then click Windows Install Clean Up. The Windows Installer CleanUp utility window appears, listing software that is currently installed on your computer.
    (4) In the list of programs that appears in CleanUp, select any iTunes entries and click "Remove", as per the following screenshot:
    (5) Quit out of CleanUp, restart the PC and try another iTunes install. Does it go through properly this time?

  • I was updating my iphone 5 with 7os and now it is telling me to restore my phone to default??? i am going to loose all my stuff Pls help me

    OMG!!!! I WAS UPDATING MY IPHONE 5 WITH 7OS AND NOW ITS TELLING ME I HAVE TO RESTORE MY PHONE TO FACTORY SETTINGS... I AM GOING TO LOOSE EVERYTHING... PLEASE SOMEBODY HELP ME

    OMG.  STOP SHOUTING!
    I can't imagine being foolish enough to update the iOS on their iDevice without making a backup of their data.  Once the phone is back to factory settings, restore it from the backup you made right before you updated.

  • HT4623 Recently updated my iphone 5 with IOS7 and lost all my photos - Help!?

    Hi, I'm wondering if anyone might be able to help? I updated my Iphone 5 with this IOS7 update a few days ago and seem to have lost all my photos.  I tried a 'Restore' and then 'Back up from restore' in itunes but the phone kept going round in circles.  It kept asking me [on the iphone] to select either 'Set up as new phone' or 'Restore from icloud' or 'Restore from itunes back up.'  I chose 'Restore from backup' every time and just as I thought it had finished, it asked me to do the whole process over again.  This happened several times.  In the end I chose to 'Set up as new iphone' and then I was able to do a restore but the photo's never appeared.  I did get all my Apps, Music and Contacts back on the phone. 
    I spoke with Apple today and they seem to think I didn't do a backup before updating to IOS7.  Normally my itunes automatically does a sync and a back up when I connect the phone and I will get a warning message to prompt me if not. I've searched for the photo's in my Pictures folder on my lap top but they are not there. I don't use icloud [don't quite understand it but I'm getting there!] and the Apple advisor checked my Apple account and couldn't find any of the photos there.  I've even tried to download a program to scan my phone for lost items but there's still no photos showing up.
    Have I lost these photos for good or is there any way of getting them back?
    Any advice appreciated.
    Thanks
    Jane     

    Just to add to my enquiry above...
    I have downloaded a couple of these programmes which say they can help scan for missing photos.  One of the programs scanned my itunes and found photos from a back up this August.  I could see quite a few photos on there [the ones that I'm missing] but these programs only let you down load 2 files [photos] unless you register with them i.e I will have to pay. 
    So why isnt this back up for August showing up in the list 'restore from back up'  when I'm connected to my itunes?? 
    Its so frustrating knowing that the majority of the photos I'm missing are actually still there somewhere.  Why do i have to pay another provider to get them back??

  • Error when communicating with server, and locked fields

    Hi there,
    I am having a really weird, and annoyingly intermittent, problem.
    I'm trying to write a single value to my application via an Input EVDRE, for testing purposes. I've been doing this all morning (admittedly to a different application set but still...) but this time when I "send and refresh", it takes ages before coming back with this error:
    "An error has occurred while communicating with the server"
    Further more, if I look at the table "dbo.lckFinance" there is now a locked field in the database for this specific category and time. So a user without access to a DBA (or the database, in my case!) would be stuck now - even if the communication problem was solved, they couldn't post anyway.
    The application is not part of appshell, we are running BPC version 7.0.112 on SQL Server 2005.
    I've looked in the Event Viewer on the server and found nothing untoward there.
    Any idea what is happening and how I can avoid this in future? The communication thing is obviously a problem, but I'm just as concerned by the locking.
    Please help!
    Many thanks,
    Jason

    Hi Jason,
    If you have problems with the network this has to be solved.
    I don't think we can have a software working if a cable was unplug ).
    We advice our customer to use citrix servers in case if the latency into network is high (more than 200 ms) and of course in case of loosing packages.
    But I don't think the problem in your case is related to the network.
    It seems in your case it was a problem of send governor.
    This can have problem when the cube and dimension are not syncronize or you have an error in one of dimensions.
    Also can you check the table sgqueue if you have any record there when nobody is sending data?
    If you have records there then you have to delete these records.
    Check also tbl"your application"lock if you have records.
    Regards
    Sorin Radulescu

  • Hello when update my MAC pro with Yosemite and start to restart the computer stuch in a half

    Hello last night I update my MAC with Yosemite and after complete the instalation and start to restart it stuck in progress bar in a half and this morning is still the same, please help

    Try booting to Recovery and repairing the startup disk
    OS X: About OS X Recovery

  • Loss in communication with Airport and iTUNES stopping!

    I have had a problem with iTUNES and my Airport Express since I first got them and it has been getting worst. There are two different, but perhaps related symptoms. The first is that everything is working fine and then the song stops playing. Sometimes only for a few seconds or sometimes indefinitely. The second problem is iTUNES can't connect with the Airport or losses the connection. This is especially confusing because the Airport is located only 4 feet away form the computer in a cabinet with my amplifier and home stereo.
    My remedies vary form simply restarting iTUNES, running One Button Checkup on Norton Systemworks, rebooting Windows and/or turning power of at Airport.
    iTUNES version 6.0.4.2, is running on an HP Pavilion ze5375, pentium 4 @ 2.4ghz with Windows XP Home edition. Airport Utility is version 4.2 and is connected by cable to a Sony stereo amplifier.
    Any help would be appreciated.
    HP Pavilion ze5375   Windows XP  

    hiya!
    hmmmmm. is the Airport connection dropping at the same time as you get the songs stop playing on the PC?
    if so, perhaps let's try attacking that issue first.
    have you worked through the possibilities from this document?
    AirTunes audio stream drops or cuts out
    love, b

  • Bridge and PS not communicating with scripts and automation.

    CS4 PS and Bridge is not communicating correctly.
    When opening an image from Bridge it opens whiteout any issues but when choosing Tools and PS and any form of automation or script it will not open and start the requested action.
    Then when choosing same or another action from the tools/PS menu I get the message that PS is currently busy processing another task and it asks me if I wish to cue the action.
    There is no difference if I chose cue or stop after this since nothing is happening how ever long I wait.
    If PS is not started it will start up the application but nothing more after that. I have reinstalled and repaired permissions both after and before.
    A colleague who also using PS CS4 is having the same hardware and is not having the same problem so I guess I am having a problem with some form of configuration.
    CS3 is working correctly on the same machine and is having no issues at all.
    Config is Macbook Pro 2.33Ghz 2gb ram OS 10.5.5 whit all the latest updates.
    TIA for you help or crazy ideas.
    Sven

    As I wrote above I have already repaired the permissions but I have also rebooted several times, I have done that before and after installs and removals off the application and I used the Adobe script CS4 cleaner script to completely remove the apps.
    The applications are all installed on their default locations and has not been moved at all and no names has been changed.
    Does anybody know any more thorough way of removing all settings and preferences for CS4 then that script.
    Maybe there are some remaining settings somewhere that I have not been able to remove.
    Are there any sort of total remover of selected adobe apps rather then having to remove all adobe stuff on the machine that is more that can do more then that script.
    Sven

Maybe you are looking for

  • Workflow Notification Issue r12

    Hi I have two issues with Workflow notification in r12. 1. Users get notification with a file attached called notification.html. This is not required. How can I stop workflow attaching this file when sending emails. 2. How can I unanimously change no

  • Content Conversion when each field is in a new line

    Hi, I have file format denoted with .SIF or .CIF. This file is organised like - AB=asdas BC=qweqwe CD=lop;lk;lk YZ=sdfsdf In each line the data after the = is actually the value of the field. Few set of these fields could repeat. And a new record wou

  • Updating Zend Framework

    How can I update Zend Framework in Flash Builder 4? Flash Builder currently installs version 1.10.1 of the Framework, and I want to install version 1.10.7 I need to install the newest version of Zend Framework because I have a problem with Network Mo

  • Grey wheel perpetually spins in Finder window status bar.

    Why does the grey wheel (Different from the beachball), in the lower right hand corner in the status bars, in some of my Finder windows, continually spin? Some for hours and never stopping. The Finder window functions normally although sometimes slow

  • FCSrvr not creating proxies

    A bit confuesed about the Final Cut Server to Final Cut Pro workflow. I would like to set up for another edit via proxies, and not sure how to create the edit proxies. My server is actually a 2.66ghz macbook pro with 4gb of ram. We are on the road, s