Data seperator check

Hello,
I am uploading CSV file to internal table,I need to check the data seperator should be only
semicolon.
Content will be like this.
Ex:    a;b;c;d
           ;p; ; q
How can i do that ?
Rgds,
Karthi.

Its my code, here i am able to check the data seperator.
if the data seperator is not semicolon then any one of the fields would be empty
then i throw a message to terminate the Program.
But there are cases i can also have empty value for fields.
      split g_r_tab_temp at ';' into   g_r_tab_final-vkorg
                                       g_r_tab_final-matnr
                                       g_r_tab_final-prodh
                                       g_r_tab_final-loc_snp.
      if sy-tabix eq 1.
        if g_r_tab_final-vkorg eq ' ' or
           g_r_tab_final-matnr eq ' ' or
           g_r_tab_final-prodh eq ' ' or
           g_r_tab_final-loc_snp eq ' '.
          message i100 with text-011.
          leave program.
        endif.
      endif.

Similar Messages

  • Data quality check or automation

    Apart from passing the report to the user for testing are there ways the process can be automated for a data quality check and how?
    Thanks.

    Hi Dre01,
    According to your description, you want to check the report data quality. Right?
    In Reporting Services, the only way to check the report data is viewing the report. So for your requirement, if you want to make this data processing automatically. We suggest to create subscription, it will process the data automatically based
    on the schedule and you will get the subscription of report to check if it shows data properly.
    Reference:
    Create, Modify, and Delete Standard Subscriptions (Reporting Services in Native Mode)
    If you have any question, please feel free to ask.
    Best Regards,
    Simon Hou

  • Using a checkbox in numbers- if,then, I want to display today's date if checked, and keep that date, the day it was checked, not the current day

    Using a checkbox in numbers- if,then, I want to display today's date if checked, and keep that date, the day it was checked, not the current day

    this will not work.  Numbers does not provide a timestamp.  you can, however, enter the formula "=now()" in any cell, then copy that same cell, then paste (using the command "Edit > Paste Formula Results"
    If you need a time stamp often,
    make a single cell table with the formula (mentioned earlier).
    and copy and paste as needed

  • Error in SP12 TemSe: Data Consistency Check

    Dear All,
    I am getting error in SP12 TemSe: Data Consistency Check. Please suggest. this are only few there are may in thousands. There is one thing more we have resent upgrade from ecc5 to eccc6.
    Please suggest how to solve it.
    Consistency check of table TST01 / TemSe objects
    System PRD 12.04.2010 12:22:02
    Clt TemSe object name Part Comments
    700 BDCLG001048620722636 1 Unable to access the related file
    700 BDCLG001336417070836 1 Unable to access the related file
    700 BDCLG366544424095583 2 Unable to access the related file
    700 BDCLG366544424095583 3 Unable to access the related file
    700 JOBLGX23303906X11768 1 Object reset
    0 JOBLGX_ZOMBIE_X00304 1 Object reset Length = 0
    0 JOBLGX_ZOMBIE_X00773 1 Object reset Length = 0
    0 JOBLGX_ZOMBIE_X01080 1 Object reset Length = 0
    0 JOBLGX_ZOMBIE_X02571 1 Object reset Length = 0
    Regards,
    Kumar

    hi
    what is the solution for this post?/
    please tell me i am also getting same error
    shell i delete all these things??
    regards
    krishna

  • How to do data quality check on XI?

    Hi XI guru,
    I am working on a project, our architect want XI to perform some data quality check to make sure the message contains correct data in future processing. Is there any existing solution or walk arround for XI to perform the data quality check?
    For example: if field A and field B is not exist, then XI need to send a email to remind someone who support this interface.
    For this kind of scenario, is that possible for XI to handle? What's the best option for XI?

    Hi,
    check all the condition in UDF and based on the condition result raise an alert.
    follow below steps:
    Michal Krawczyk
    The specified item was not found.
    Configuration steps are: go to transaction ALRTCATDEF
    1) Define Alert Category
    2) Create container elements which are used for holding an error messages.
    3) Recipient Determination.
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/xi/alert%2bconfiguration%2bin%2bxi
    Alert can be triggered in different ways.
    1) Triggering by Calling a Function Module Directly.
    Triggering XI Alerts from a User Defined Function
    chirag

  • How we will display the header data and item data seperately in lists

    how we will display the header data and item data seperately in lists

    REPORT z_alv_list_block.
    TYPE-POOLS: slis. " ALV Global types
    SELECTION-SCREEN :
    SKIP,
    BEGIN OF LINE,
    COMMENT 5(27) v_1 FOR FIELD p_max. "#EC NEEDED
    PARAMETERS p_max(2) TYPE n DEFAULT '02' OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    DATA:
    1st Table
    BEGIN OF gt_kna1 OCCURS 0, " Data displayed
    kunnr LIKE kna1-kunnr, " Customer number
    ernam LIKE kna1-ernam, " Name of Person who Created
    erdat LIKE kna1-erdat, " Creation date
    name1 LIKE kna1-name1, " Name 1
    END OF gt_kna1,
    2nd Table
    BEGIN OF gt_mara OCCURS 0,
    ernam LIKE mara-ernam, " Name of Person who Created
    matnr LIKE mara-matnr, " Material number
    ersda LIKE mara-e rsda, " Creation date
    brgew LIKE mara-brgew, " Gross weight
    END OF gt_mara,
    3rd Table
    BEGIN OF gt_vbak OCCURS 0,
    vkorg LIKE vbak-vkorg, " Sales organization
    kunnr LIKE vbak-kunnr, " Sold-to party
    vbeln LIKE vbak-vbeln, " Sales document
    netwr LIKE vbak-netwr, " Net Value of the Sales Order
    waerk LIKE vbak-waerk, " SD document currency
    END OF gt_vbak.
    INITIALIZATION.
    v_1 = 'Maximum of records to read'.
    START-OF-SELECTION.
    Read data
    SELECT * FROM kna1
    UP TO p_max ROWS
    INTO CORRESPONDING FIELDS OF TABLE gt_kna1.
    SELECT * FROM mara
    UP TO p_max ROWS
    INTO CORRESPONDING FIELDS OF TABLE gt_mara.
    SELECT * FROM vbak
    UP TO p_max ROWS
    INTO CORRESPONDING FIELDS OF TABLE gt_vbak.
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
    EXPORTING
    i_callback_program = sy-cprog
    i_callback_user_command = 'USER_COMMAND'.
    PERFORM list_append TABLES gt_kna1
    USING '1'
    'GT_KNA1'.
    PERFORM list_append TABLES gt_mara
    USING '2'
    'GT_MARA'.
    PERFORM list_append TABLES gt_vbak
    USING '3'
    'GT_VBAK'.
    PERFORM f_list_display.
    FORM USER_COMMAND *
    FORM user_command USING i_ucomm LIKE sy-ucomm
    is_selfield TYPE slis_selfield. "#EC CALLED
    CASE i_ucomm.
    WHEN '&IC1'. " Pick
    CASE is_selfield-tabname.
    WHEN 'GT_MARA'.
    WHEN 'GT_KNA1'.
    WHEN 'GT_VBAK'.
    READ TABLE gt_vbak INDEX is_selfield-tabindex.
    IF sy-subrc EQ 0.
    Sales order number
    SET PARAMETER ID 'AUN' FIELD gt_vbak-vbeln.
    Display Sales Order
    CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
    ENDIF.
    ENDCASE.
    ENDCASE.
    ENDFORM. " USER_COMMAND
    ----< /div>
    Form list_append
    FORM list_append TABLES ut_table
    USING u_no TYPE char1
    u_tabname TYPE slis_tabname.
    Macro definition
    DEFINE m_fieldcat.
    ls_fieldcat-fieldname = &1.
    ls_fieldcat-ref_tabname = &2.
    append ls_fieldcat to lt_fieldcat.
    END-OF-DEFINITION.
    DEFINE m_sort.
    ls_sort-fieldname = &1.
    ls_sort-up = 'X'.
    append ls_sort to lt_sort.
    END-OF-DEFINITION.
    DATA :
    ls_fieldcat TYPE slis_fieldcat_alv,
    lt_fieldcat TYPE slis_t_fieldcat_alv, " Field catalog
    ls_sort TYPE slis_sortinfo_alv,
    lt_sort TYPE slis_t_sortinfo_alv. " Sort table
    DATA:
    lt_events TYPE slis_t_event,
    ls_event TYPE slis_alv_event,
    ls_layout TYPE slis_layout_alv.
    ls_layout-group_change_edit = 'X'.
    ls_layout-colwidth_optimize = 'X'.
    ls_layout-zebra = 'X'.
    ls_layout-detail_popup = 'X'.
    ls_layout-get_selinfos = 'X'.
    ls_layout-max_linesize = '200'.
    CASE u_no.
    WHEN '1'.
    Build field catalog and sort table
    m_fieldcat 'KUNNR' 'KNA1'.
    m_fieldcat 'ERNAM' 'KNA1'.
    m_fieldcat 'ERDAT' 'KNA1'.
    m_fieldcat 'NAME1' 'KNA1'.
    m_sort 'KUNNR'.
    WHEN '2'.
    m_fieldcat 'MATNR' 'MARA'.
    m_fieldcat 'ERNAM' 'MARA'.
    m_fieldcat 'ERSDA' 'MARA'.
    m_fieldcat 'BRGEW' 'MARA'.
    m_sort 'MATNR'.
    WHEN '3'.
    m_fieldcat 'VBELN' 'VBAK'.
    m_fieldcat 'VKORG' 'VBAK'.
    m_fieldcat 'KUNNR' 'VBAK'.
    m_fieldcat 'NETWR' 'VBAK'.
    m_fieldcat 'WAERK' 'VBAK'.
    m_sort 'VBELN'.
    ENDCASE.
    IF u_no CA '13'.
    MOVE 'TOP_OF_PAGE' TO ls_event-name.
    CONCATENATE 'TOP_OF_PAGE' u_no INTO ls_event-form.
    APPEND ls_event TO lt_events.
    ELSE.
    MOVE 'TOP_OF_LIST' TO ls_event-name.
    CONCATENATE 'TOP_OF_LIST' u_no INTO ls_event-form.
    APPEND ls_event TO lt_events.
    ENDIF.
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
    EXPORTING
    it_fieldcat = lt_fieldcat
    is_layout = ls_layout
    i_tabname = u_tabname
    it_events = lt_events
    it_sort = lt_sort
    i_text =
    TABLES
    t_outtab = ut_table
    EXCEPTIONS
    program_error = 1
    maximum_of_appends_reached = 2
    OTHERS = 3.
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    ENDFORM. " LIST_APPEND
    Form f_list_display
    FORM f_list_display.
    DATA ls_print TYPE slis_print_alv.
    ls_print-no_print_selinfos = 'X'. " Display no selection infos
    ls_print-no_print_listinfos = 'X'. " Display no listinfos
    ls_print-reserve_lines = 2. " Lines reserved for end of page
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
    EXPORTING
    i_interface_check = ' '
    is_print = ls_print
    EXCEPTIONS
    program_error = 1
    OTHERS = 2.
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    ENDFORM. " F_LIST_DISPLAY
    FORM top_of_page1 *
    FORM top_of_page1. "#EC CALLED
    PERFORM top_of_page.
    ENDFORM.
    FORM top_of_page3 *
    FORM top_of_page3. "#EC CALLED
    PERFORM top_of_page.
    ENDFORM.
    FORM top_of_page *
    FORM top_of_page.
    ULINE.
    WRITE : sy-uname, sy-title(56) CENTERED, sy-datum.
    ULINE.
    ENDFORM.
    FORM top_of_list2 *
    FORM top_of_list2. "#EC CALLED
    WRITE 'TOP OF LIST2'.
    ENDFORM.
    END OF PROGRAM Z_ALV_LIST_BLOCK ***********************

  • How to Populate Vision Data seperately?

    Hi,
    I am currently installing R12 on windows server 2003.(First time atteempt of EBS installation).
    Due to space limitation , I am installing it as Production .
    HoweverI want to install vision data for my practice . So I want to install vision data seperately and that also only for few products.
    Is it possible to achieve?
    Abdul Wahid

    Hi,
    There is no supported way to achieve this (you cannot even install the vision demo database partially).
    To install Vision demo database, run Rapid Install again and select to install this database.
    Regards,
    Hussein

  • Passing data from check FM

    Hi,
    Wanted to know how to pass data from check FM to workflow container?
    We are not able to add parameters for event container as it is standard event.
    Can we set attribute of object ? I could not find macro for setting property.
    Expecting urgent help.
    Regards,
    Akshay

    Hi Akshay,
    Trying to pass data from check FM to workflow container is the wrong approach to use.  The purpose of a check FM is ONLY to see if the workflow should be started by the event or not.  You cannot and should not even attempt to change the event container in a check FM.
    What you need to do is to take a step back and think about your options:
    1. "Not able to add parameters ... as it is a standard event".  Well you can extend the event parameters on a standard event by creating a delegated subtype of the standard object type.  However if the event is raised by standard code this may not help you anyway.   It's worth reading the SAP Library doco on this as some types of events do pass additional information provided you define the event parameter names correctly, e.g. change document events will automatically pass the old/new value of certain fields.
    2. Is the data you are trying to pass related to:
    a) The object - then use attributes of the object instead to calculate the value
    b) The person creating the event - then use attributes of the event creator, i.e. as soon as the workflow starts, add a step to instantiate an instance of an object representing the user such as USR01 or USR01DOHR.
    c) Other standard data in the event container such as the calling program id, the date/time - any of that info can be passed to your workflow container and then used to derive further info from there.
    3. If the data you are trying to pass is only available in the standard calling application, then you need to find another way to raise the event or raise a custom event.  E.g. in a user exit or BADI.
    4. And one final option of last resort - create your own RECEIVER function module - this does allow you to fill the workflow container during the event linkage.  But I would still consider this a "last resort" option.
    Regards,
    Jocelyn
    Message was edited by: Jocelyn Dart

  • Installation error: cannot find the data source checking utility (dbcheck)

    BO XI 3.0:
    During the process of installing "Dashboard and Analytics Servers", we've got this error.
    Installation error: cannot find the data source checking utility (dbcheck)
    Have anyone encountered this issue? We can't move on after this error.
    Thanks,

    I've fixed the problem.
    Lianjun.
    Lianjun (guest) wrote:
    : I've tried to run the latest beta version of OMWB to migrate
    from
    : MS SQLSERVER7.0 to Oracle8i. At step 4:Source Database Details,
    : every time I put in the data source name (which is in the
    control
    : panel-ODBC data source Administrator), it gave an error message
    : that Data source name not found and no default driver
    : specified).Anybody has any ideas?
    : Thanks for the help!
    : Lianjun.
    null

  • Sales Order VA01 - "No control data for checking group 04 and checking rule

    Dear Gurus,
    When saving a sales order in VA01, I get the following message: "No control data for checking group 04 and checking rule A"
    Can anyone explain to me what that means?
    How can I correct this error?
    Regards
    Chris

    Check this thread
    [Re: Process Order Material availability check error|Re: Process Order Material availability check error;
    thanks
    G. Lakshmipathi

  • Invalid text value. A text field contains invalid data. Check the value and try again

    Hello,
    I am having a problem with the error mentioned in the title. I see alot of others have experienced the same problem, but I have quite a twist to it.
    I see the problem when I try to edit a list item, and then try to save the changes.
    Here what I see in the ULS log:
    System.Runtime.InteropServices.COMException: Invalid text value. A text field contains invalid data. Check the value and try again  
    at Microsoft.SharePoint.Library.SPRequestInternalClass.AddOrUpdateItem(String bstrUrl, String bstrListName, Boolean bAdd, Boolean bSystemUpdate, Boolean bPreserveItemVersion, Boolean bUpdateNoVersion, Int32& plID, String& pbstrGuid, Guid pbstrNewDocId,
    Boolean bHasNewDocId, String bstrVersion, Object& pvarAttachmentNames, Object& pvarAttachmentContents, Object& pvarProperties, Boolean bCheckOut, Boolean bCheckin, Boolean bMigration, Boolean bPublish, String bstrFileName, ISP2DSafeArrayWriter
    pListDataValidationCallback, ISP2DSafeArrayWriter pRestrictInsertCallback, ISP2DSafeArrayWriter pUniqueFieldCallback)   
    at Microsoft.SharePoint.Library.SPRequest.AddOrUpdateItem(String bstrUrl, String bstrListName, Boolean bAdd, Boolean bSystemUpdate, Boolean bPreserveItemVersion, Boolean bUpdateNoVersion, Int32& plID, String& pbstrGuid, Guid pbstrNewDocId, Boolean
    bHasNewDocId, String bstrVersion, Object& pvarAttachmentNames, Object& pvarAttachmentContents, Object& pvarProperties, Boolean bCheckOut, Boolean bCheckin, Boolean bMigration, Boolean bPublish, String bstrFileName, ISP2DSafeArrayWriter pListDataValidationCallback,
    ISP2DSafeArrayWriter pRestrictInsertCallback, ISP2DSafeArrayWriter pUniqueFieldCallback)
    I have 3 front end servers(fx wfe1, wfe2, wfe3).  And here is the twist.
    If I access the library directly through wfe1 and wfe2, I get the error. If I access the library via wfe3 if works just fine.
    So because of this, I think it is safe to assume that is has nothing to do with the character limit of 255. Nor does it have anything to do with the field type, since it is already set to mulitible lines of text.
    So. Any ideas?
    Regards,
    Michael
    mic

    Check if there is any change in web.config of these servers
    http://support.microsoft.com/kb/2880758
    To work around this issue, limit the length of the personal message in the invitation to 256 characters or less.
    This is a known issue. Microsoft is working to resolve this issue.
    http://social.msdn.microsoft.com/Forums/en-US/7bb16e51-e7cc-439e-a8b3-755683ccac1a/max-length-on-custom-field-types
    To solve the problem you may have to change the field's parent type to "note". To do that you have to open your fldtypes... file under Templates/xml and change the line to:
    "<Field Name="ParentType">Note</Field>" from "<Field Name="ParentType">Text</Field>"
    You might also have to add a sql type if your text needs to be longer than 255 characters
    <Field Name=”SQLType”>ntext</Field>
    and inherit from SPFieldMultiLineText instead of SPFieldText
    If this helped you resolve your issue, please mark it Answered

  • Outlook 2010 stuck on Data File Check in Progress

    First off, I'm using Exchange 2007 and the user has Outlook 2010 installed on a Windows 7 32 bit machine. When the user opens outlook, the Data File Check in Progress gears show up in the bottom toolbar, and Outlook becomes unstable and eventually unresponsive.
    I suspect the issue is that they have a 5 GB ost file and Outlook is having trouble reading the whole thing and fixing any errors. I'm trying to figure out how to cancel the data file check. I've set the user up on a different Win7 machine and Outlook loaded
    the .ost fine so I'm not worried about a corrupted profile. I've tried running Outlook in safe mode, removing and readding the mail profile, manually replacing the ost with the file from the other machine, even removing office 2010 and reinstalling but nothing
    seems to clear whatever is telling Outlook to perform a data file check. Is there any way to get the file check to stop, or does anybody know how to stop it from crashing Outlook? Let me know if you need any more information and I'll gladly provide it. Thanks
    for any help.
    EDIT: I ended up removing the user's account from windows and added them again and it worked fine. Something in the user's account must have been messing it up.

    Hi
    Did you try deleting the outlook folder from C:\Users\Username\AppData\Local\Microsoft\Outlook or delete all the files within that directory? and start outlook so it redownload the data from exchange?
    When recreating the new profile make sure you dont enable cache mode and see if outlook opens fine when working online with exchange.

  • CUCM Telephony Data Synchronization Check Fails in UCCX 10.6

    Hello Experts,
    We are running CUCM 10.5 and UCCX 10.6 (recently upgraded). When I try to do a data sync check (or data resync), it fails with error messaged attached.  Do you have any ideas how to resolve this issue?
    Any help will be truly appreciated.
    Thanks,
    Randy C.

    Hello Sivanesan,
    Thank you for taking the time to respond.
    With the help of TAC, it turns out that the problem was caused by an expired certificate in CUCM. Here's what we had to do:
    1. CUCM OS Admin-->Security-->Certificate Management
    2. Click the tomcat.pem file, and then click Regenerate.
    3. After the successful regeneration of the tomcat.pem file, download the same.
    4. Go back to the Certificate Management page.
    5. Find all the existing tomcat-trust file entries. Click the file name of the certificate
    or CTL, and then click Delete.
    6. Upload the downloaded tomcat.pem file with the caption tomcat-trust.
    The new Tomcat certificate will not take effect until the Tomcat service is restarted.
    -  "utils restart Cisco Tomcat" on CUCM
    -  "utils restart Cisco Tomcat" on UCCX
    This resolved the issue. I'll just put this in the community so that someone may find this helpful.
    Thanks again for quickly responding to my post. Appreciate your time and help.
    -Randy C.

  • How do I do a data type check?

    Hi.
    I was trying to do a hashtotal for a table column. It is necessary that the table column only contains numeric values. Is there a way to do a data type check, before I compute the hashtotal value? Thanks.
    LOOP AT itab INTO hash_value.
      IF hash_value = NUMC. " (==> Cannot)
        hash_total = hash_total + hash_value.
      ENDIF.

    you can try this
    data : text(50),
           dtyp like DD01V-DATATYPE,
           bef(15),
           aft(15).
    data : dtype(1).
    text = '1,234.60'.
    if text co '0123456789.,'.
    write : / 'numeric'.
    endif.
    split text at '.' into bef aft.
    replace all occurrences of ',' in bef with space.
    condense bef.
    CALL FUNCTION 'NUMERIC_CHECK'
      EXPORTING
        STRING_IN        = bef
    IMPORTING
    *   STRING_OUT       =
       HTYPE            = dtyp
    if dtyp cs 'NUMC'.
    write : / 'Befor decimal Numeric'.
    else.
    write : / 'Befor decimal Character'.
    endif.
    clear dtyp.
    CALL FUNCTION 'NUMERIC_CHECK'
      EXPORTING
        STRING_IN        = aft
    IMPORTING
    *   STRING_OUT       =
       HTYPE            = dtyp
    if dtyp cs 'NUMC'.
    write : / 'After decimal Numeric'.
    else.
    write : / 'After decimal Character'.
    endif.
    regards
    shiba dutta

  • Date Seperation in check printing

    Hi,
    I the SAP Scripts , i am having the date variable's value as 21102011.
    I want to introduce the logic for the separation of each number by space to print in the check as the check contains 8 boxes respectively.
    that is, i want to print the date  as 2 1 1 0 2 0 1 1 .
    i am not getting the logic as i am new to ABAP.
    Please provide me with the logic for separation of Numbers in Date .

    Hi,
    Use off set.
    Use tab seperator.
    Date0(1),,Date1(1),,Date+2(1),,and so on...
    Regards,
    Surya

Maybe you are looking for

  • Hide command line ebs password

    Hi All, is there a way to hide command line password for apps user. when start or stop ebs apps from command line, i have to type $adstrtal.sh apps/apps is there a way to hide this password. Thanks in advance.

  • Is there a way to mimic Photoshop Levels adjustment feature in Lightroom?

    I've found that pretty much every photo looks better if I start by editing it externally in Photoshop using the Image>Adjustments>Auto Levels feature then brining it back into Lightroom to tweak color temperature, exposure, clarity, etc. I call it th

  • IPad 2 departed from Chengdu, China twice?

    I ordered my iPad 2 on June 11, 2011. I received my tracking information on Monday June 20, 2011. It's made its way all the way to Chengdu, China, but for whatever reason my tracking information says it departed from there twice. Why would it depart,

  • Customer master not transferred to EWM

    Hi All, We have ECC 6 integrated with EWM system for WM. We had created one customer integration model for around 70 customers and we activated integration model to send these 70 customers to EWM system. We found that some 3 customers were not transf

  • Profile Update Error – Internal Server Error

    I am getting the following error message when updating the profile using "My Settings" (Quick Access -> My Settings).  Anyone else having the same issue? Santhosh Sivarajan | Houston, TX Windows 2012 Book - Migrating from 2008 to Windows Server 2012