Mapping to trim all columns

Hi All,
I am wondering if you have any recommendation on how to do data scrubbing (trimming, data conversion, etc) in owb mapping?
For example, I would like to TRIM all the columns (say 200 of them) in a source table and move them to target table. Currently, I am using this expression operator, and its a pain to repeat the same steps for all the 200 columns. do you guys have any suggestions?
~Prabha

Hello Prabha,
As an alternative why not use OMB?
I have this very simple code that sometimes I use when I need to repeat functions like that on expression operators. All you need to do is connect all the attributes into the input group of the expression operator and replace the values for path_to_mapping, MY_MAP and MY_EXPRESSION in the code.
You can execute this directly on the OMB*Plus editor in OWB.
Regards,
Bruno
OMBCC path_to_mapping
set mapName MY_MAP
set operatorName MY_EXPRESSION
foreach columnName [OMBRETRIEVE MAPPING '$mapName' OPERATOR '$operatorName' GROUP 'INGRP1' GET ATTRIBUTES] {
     set dataType_prop [OMBRETRIEVE MAPPING '$mapName' OPERATOR '$operatorName' GROUP 'INGRP1' ATTRIBUTE '$columnName' GET PROPERTIES (DATATYPE)]
     switch $dataType_prop {
          "VARCHAR2" {
               set length_prop [OMBRETRIEVE MAPPING '$mapName' OPERATOR '$operatorName' GROUP 'INGRP1' ATTRIBUTE '$columnName' GET PROPERTIES (LENGTH)]
               OMBALTER MAPPING '$mapName' \
                    ADD ATTRIBUTE '$columnName' OF GROUP 'OUTGRP1' OF OPERATOR 'EXPRESSION' \
                         SET PROPERTIES (DATATYPE, LENGTH, EXPRESSION) \
                         VALUES ('$dataType_prop','$length_prop', 'TRIM(INGRP1.$columnName)')
          "CHAR" {
               set length_prop [OMBRETRIEVE MAPPING '$mapName' OPERATOR '$operatorName' GROUP 'INGRP1' ATTRIBUTE '$columnName' GET PROPERTIES (LENGTH)]
               OMBALTER MAPPING '$mapName' \
                    ADD ATTRIBUTE '$columnName' OF GROUP 'OUTGRP1' OF OPERATOR 'EXPRESSION' \
                         SET PROPERTIES (DATATYPE, LENGTH, EXPRESSION) \
                         VALUES ('$dataType_prop','$length_prop', 'TRIM(INGRP1.$columnName)')
          "FLOAT" {
               set precision_prop [OMBRETRIEVE MAPPING '$mapName' OPERATOR '$operatorName' GROUP 'INGRP1' ATTRIBUTE '$columnName' GET PROPERTIES (PRECISION)]
               OMBALTER MAPPING '$mapName' \
                    ADD ATTRIBUTE '$columnName' OF GROUP 'OUTGRP1' OF OPERATOR 'EXPRESSION' \
                         SET PROPERTIES (DATATYPE, PRECISION, EXPRESSION) \
                         VALUES ('$dataType_prop','$precision_prop', 'TRIM(INGRP1.$columnName)')
          "DATE" {
               OMBALTER MAPPING '$mapName' \
                    ADD ATTRIBUTE '$columnName' OF GROUP 'OUTGRP1' OF OPERATOR 'EXPRESSION' \
                         SET PROPERTIES (DATATYPE, EXPRESSION) \
                         VALUES ('$dataType_prop', 'TRIM(INGRP1.$columnName)')
          default {
               set precision_prop [OMBRETRIEVE MAPPING '$mapName' OPERATOR '$operatorName' GROUP 'INGRP1' ATTRIBUTE '$columnName' GET PROPERTIES (PRECISION)]
               set scale_prop [OMBRETRIEVE MAPPING '$mapName' OPERATOR '$operatorName' GROUP 'INGRP1' ATTRIBUTE '$columnName' GET PROPERTIES (SCALE)]
               OMBALTER MAPPING '$mapName' \
                    ADD ATTRIBUTE '$columnName' OF GROUP 'OUTGRP1' OF OPERATOR 'EXPRESSION' \
                         SET PROPERTIES (DATATYPE, PRECISION, SCALE, EXPRESSION) \
                         VALUES ('$dataType_prop','$precision_prop','$scale_prop','TRIM(INGRP1.$columnName)')
}

Similar Messages

  • SSIS option to trim all character fields upon import?

    Does SSIS have an option to automatically trim (both left and right) all character data before importing it into  a table?
    TIA,
    edm2

    Nitesh is right... should be done in the source query or within a Derived Column with a
    TRIM. Other option could be a Script Component to trim all columns at once:
    http://microsoft-ssis.blogspot.com/2010/12/do-something-for-all-columns-in-your.html
    Please mark the post as answered if it answers your question | My SSIS Blog:
    http://microsoft-ssis.blogspot.com |
    Twitter

  • File Browse Option don't show me all Column in Data / Table Mapping

    Dear Friends,
    i am using 4.1 on APEX.ORACLE.COM.
    i have to created page with DATA Upload option.Page are ctreated successfully But there is one problem when i COPY & PASTE DATA from Excel Sheet then Data Upload Success fully.
    But When I use File Browser Option to Upload Data Then In Data / Table Mapping Step that show me Only One Column Name Select list with Do Not Load default option . but i have 7 column name in Excel Sheet. that should be display me 7 Select List to select All column name which are mention in Excel Sheet
    Please tell me where i am wrong and how to display all Column name in Data / Table Mapping step to upload Excel Sheet Data.
    How to Resplve this issue.
    Thanks
    Manoj Kauhsik

    Dear Earl,
    Thanks to reply me.
    I am not using Utility to upl;oad Excel Sheet Data.
    i am go through Apex.oracle.com .i have create an application to upload data from Excel Sheet.
    There is an option DATA UPLOAD when we create new Page so i have choose this option and create Pages with follow all instraction .By using this option i want to an Feature in my Application to Upload Data .
    When i use Copy and Paste OPtion to upload data from Excel Sheet.then Data ar Uploaded but Problem Is When i use File Browser Option to upload data then that show me only one option for Column name rather than i have 7 Column in My excel file.
    i have one more problem ,i have .csv file when i open it and close then no problem but when i reopen it then that show me a pop up with Meassages
    "Excel has detected abc.csv file is a SYLK file.but can't load it".
    How resole it.Please suggest me.
    Thanks
    Vedant

  • Error While mapping table with 100 Columns

    Hello
    Actually i had a requirement in which i have to map the data into target table from more than 50 tables with complex join conditions
    So I created 5 maps separately to load the data and now i am feared that while i deploy the the first map the other columns which doesnt have a map
    will be filled with nulls and some of the columns have unique constraint on it so its giving me error
    Please Help me out i need to submit my Assignment by Monday
    Thanks
    Sriks

    Bharadwaj Hari wrote:
    Hi,
    I agree with u...I am not sure of the environment the user has so i put forth all the 3 option that crossed my mind that time....thats why i said he has to choose what best suits him/her...
    Also if the database is huge and we create physical temp tables (option 2 and ur idea) its like having redundant data in the database which is also a problem....So ist upto the user to actually evaluate the situation and come up with what best suits him/her...
    Regards
    BharathHi,
    I understand your opinion. But I am not sure that the user have enough experience to choose the best option by his one. And about the redundant data: because of this I wrote that he should truncate the tables after the last mapping which loads all data into the real target table.
    Regards,
    Detlef

  • SQL query to view all columns

    Hello,
    How can I view all columns stored in the Users table? I know some of the field names, like Users.First Name, Users.Last Name, Users.Login, Users.Manager Login.
    I'm essentially trying to access some udf fields (usr_udf_fielda, usr_udf_fieldb) and don't know how to reference them.
    Thanks.

    This is the code I'm using. It was actually working just fine when I had hard coded test values. Since I changed it to references it's been generating that error so I assumed it had something to do with that.
    package com.oracle.events;
    import Thor.API.Operations.tcUserOperationsIntf;
    import Thor.API.tcResultSet;
    import Thor.API.tcUtilityFactory;
    import com.thortech.xl.crypto.tcCryptoUtil;
    import com.thortech.xl.crypto.tcSignatureMessage;
    import com.thortech.xl.util.config.ConfigurationClient;
    import java.util.HashMap;
    import java.util.Hashtable;
    import java.util.Map;
    public class managerid2 extends com.thortech.xl.client.events.tcBaseEvent{
    tcUtilityFactory utilFactory = null;
    tcSignatureMessage moSignature = null;
    ConfigurationClient.ComplexSetting myConfig = ConfigurationClient.getComplexSettingByPath("Discovery.CoreServer");
    final Hashtable env = myConfig.getAllSettings();
    Map statusMap = new HashMap();
    private tcUserOperationsIntf userIntf;
    String supervisoremplno=getDataObject().getString("usr_udf_supemplno");
    protected void implementation() throws Exception {
    if (getDataObject().isDeleting()) {
    return;
    if (getDataObject().isUpdating()) {
    return;
    String managerid= getManagerID(supervisoremplno);
    try{
    getDataObject().setString("usr_manager",managerid);
    return;
    }catch(Exception ioex){
    System.out.println("Supervisoremployeenumber does not exist" + ioex.getMessage());
    return;
    public String getManagerID(String supervisoremplno) {
    try {
    moSignature = tcCryptoUtil.sign("xelsysadm", "PrivateKey");
    utilFactory = new tcUtilityFactory(env, moSignature);
    userIntf = (tcUserOperationsIntf) utilFactory.getUtility("Thor.API.Operations.tcUserOperationsIntf");
    String userid = "temp";
    //String supervisoremplno=userSet.getStringValue("usr_udf_supemplno");
    HashMap userHash = new HashMap();
    userHash.put("Users.User ID", userid);
    tcResultSet userSet = userIntf.findAllUsers(userHash);
    for (int i=0;i<userSet.getTotalRowCount();i++){
    userSet.goToRow(i);
    String emplno=userSet.getStringValue("USR_UDF_EMPLNO");
    String mgrid = userSet.getStringValue("Users.Login");
    if(emplno.equalsIgnoreCase(supervisoremplno))
    return mgrid;
    catch(Exception e){
    return "xelsysadm";
    }

  • Trim All Text Field quickly?

    Currently i got over +40 textfields which uses DML and the column is 255 VARCHAR
    Wondering if there a quick way of trimming all these fields before the update happens.
    As of right now im doing it like this... is there way a to grab all textfield and just loop and trim or something simliar....? i was thinking of using javascript and copy paste 40 names in an array and loop trim and set value but that seem ugly to me. as i have to go in to it every time if a new field is needed...
    :P1_name := trim(:P1_name)
    :P1_boat := trim(:P1_boat)
    :P1_book := trim(:P1_book)
    :P1_game := trim(:P1_game)
    :P1_phone := trim(:P1_phone)
    :Px_item := trim(:Px_item)Edited by: PandaOracle on Feb 14, 2012 2:19 PM

    Hello PandaOracle,
    >
    PandaOracle wrote:
    As of right now im doing it like this... is there way a to grab all textfield and just loop and trim or something simliar....? i was thinking of using javascript and copy paste 40 names in an array and loop trim and set value but that seem ugly to me.
    >
    Instead of JavaScript there is a jQuery solution to you problem. Here is a JavaScript function you can call on your Submit button of your page:
    function f_trim_textb() {
      //trim all the text fields
      $('input[type="text"]').each(function() {
       oval = $(this).val();
       tval = $.trim(oval);
       $(this).val(tval);
      //submit the page
      apex.submit({request:"SUBMIT"});
    }Refer: http://api.jquery.com/jQuery.trim/
    Well however this is not the only solution! You can use PL/SQL process that executes before page submit and do thing what you have suggested above:
    :P1_name := trim(:P1_name)
    :P1_boat := trim(:P1_boat)
    :P1_book := trim(:P1_book)
    :P1_game := trim(:P1_game)
    :P1_phone := trim(:P1_phone)
    :Px_item := trim(:Px_item)Yet another solution is setting the attribute Post Calculation Computation in the Source section of Item Attributes to:
    trim(:Px_item)Hope it helps!
    Regards,
    Kiran

  • Left and right trim all af:inputText fields

    Hi,
    ADF 10.1.3.4
    we have a requirement to left and right trim all input text fields in the application. Is there an easy way to do this?
    Thanks,
    Mike

    Hi...
    If you want to get the values after a request was send, you can do it simply in the following way:
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Map.Entry;
    import javax.faces.context.FacesContext;
    import javax.servlet.http.HttpServletRequest;
    HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
    Map<String, String[]> requestParameters = request.getParameterMap();
    Iterator iter = requestParameters.entrySet().iterator();
    while (iter.hasNext()) {
      Entry entry = (Entry)iter.next();
      String key = (String)entry.getKey();
      String value = ((String[])entry.getValue())[0];
      if (key.contains("<Your HTML-Element Id>")) {
        // trim your value
    }These code you can put into your submitAction in the backing Bean where your inputfields are locaded. In the request are a lot of data and you dont want do trim all of this. The <Your HTML-Element Id>-String is a string you can locate your inputfields. For example "form1.inputField1". If you render the page, you can look at the HTML-Element Ids to get your Ids. Maybe you can use "key.contains("form1")" to get all fields in Form1.
    Best regards
    Majo

  • How to print all columns in one page

    Hi,
    Can anybody explain me how to print all columns in one page.we have around 15 to 20 columns for 4 reports and all these reports are build on one multiprovider.we are using BW 3.5.
    Can anyone explain me  how to print ALL COLUMNS IN ONE PAGE  .currently they are getting all columns in 2 to 3 pages. They are using PORTAL to run the reports here.
    Is it possible to do by customizing Webtemplate or by macros in Workbook.Please help me
    Edited by: kotha123 on Oct 11, 2010 5:58 PM

    Hi,
    Your best bet is to use a workbook template or else Excel to pdf option...Thanks

  • Return data from all columns apart from a certain data type.

    Bit stuck on something, hope somebody here can help:
    I want to do a 'select * from ' a table, to return all columns except ones of a certain datatype. ie. I want to return data from all columns, excluding columns of datatype 'SDO_GEOMETRY'.
    This gives me the list of columns:
    SELECT COLUMN_NAME
    FROM   USER_TAB_COLUMNS
    WHERE TABLE_NAME = 'ORDER_ITEM'
    AND   DATA_TYPE <> 'SDO_GEOMETRY'; But I can't seem to take it any further...
    Now if I knew the columns beforehand, then of course I could just list them, excluding the geometry column, but this is to be used for a plug-in for MS Word, where a user can pick database columns to dynamically fill a report from - but I don't want the geometry columns as these can't be handled in this way.

    Hi Reggie,
    > connects to the database and presents a list of tables
    My guess is that this macro is written so it selects from all_tab_cols.
    Change that plugin and let it select from a view like the one above. That way, the users won't be able to see/pick anything that you are not able/willing to present for them.
    Edit:
    You could even tease your users, and let them see the columns, but not being able to pick them.
    create or replace view available_tab_columns
    as
       select decode(pickable.data_type, null, 0, 1) pickable
             ,atc.* -- narrow down yourself
         from all_tab_cols atc  -- or maybe user_tab_cols
             ,(select 'CHAR' data_type from dual union all
               select 'DATE' from dual union all
            select 'NUMBER' from dual
               -- complete positive list, yourself
              ) pickable
        where atc.data_type = pickable.data_type(+);Regards
    Peter
    Message was edited by:
    Peter Gjelstrup

  • Out put in Background (SM37) not showing All columns

    Hi Folks,
             I’m creating an out put display for my query in background , we have define an output device , after submitting the query in back ground it just showing me only 10 columns . I mean I its not showing me all columns when I went to SE37-> select job->”spool ->view (display).
    Why it’s happening?
    Please help me
    Cheers
    Usman

    When you are submitting the job in background by exexuting your query from Sq01 or Tr.code , a screen will pop-up ask for you device name, on the same screen you’ll see properties hit that, it’ll take you to another screen and change the report format 65 and 200 or 65 and 200. It depends on your out put device . You can only display report till 255 . If you want to active ALV functional enable in background spool job you have to use extracts for that . So you can download your data in correct format.
    You can also decrease the length of variables in query so within 255 characters you can see all report columns. 
    Hope this’ll help you .
    Hope this’ll give you idea!!
    <b>P.S award the points.</b>
    Good luck
    Thanks
    Saquib Khan
    "Some are wise and some are otherwise"

  • Function module u0091GET_PRINT_PARAMETERSu0092 Not showing all columns

    Hello all,
    I am using function module ‘GET_PRINT_PARAMETERS’
    CALL FUNCTION 'GET_PRINT_PARAMETERS'
        EXPORTING
          DESTINATION    = LOC_DEST
          COPIES         = WF_COPIES
          LIST_NAME      = WF_LISTNAME
          LIST_TEXT      = WF_LISTTEXT
          IMMEDIATELY    = ' '
          RELEASE        = ' '
          NEW_LIST_ID    = 'X'
          EXPIRATION     = WF_DAYS
          LINE_SIZE      = 132
          LINE_COUNT     = 65
          LAYOUT         = 'X_65_132'
          SAP_COVER_PAGE = 'X'
          RECEIVER       = 'SAP*'
          DEPARTMENT     = ''
          NO_DIALOG      = 'X'
        IMPORTING
          OUT_PARAMETERS = WF_PARAMS
          VALID          = WF_VALID.
    NEW-PAGE PRINT ON PARAMETERS WF_PARAMS NO DIALOG.
        PERFORM WRITE_PDF_SUMMARY USING P_VALID P_COND P_ZMGC P_ZOGC P_PDF.
        NEW-PAGE PRINT OFF.
    But in my report there are 10 columns and in download file it’s showing only 6 columns .If I increase that size to X_65_200 Then it shows all columns But it’s not readable. Please tell me how can I use that fix size X_65_132 & it will show all columns .
    Message was edited by:
            megha waykar

    You r right,But that program is already developed in following sequence
    *==>  1. Create Virtual Spool
                using FUNCTION 'GET_PRINT_PARAMETERS'
    *==>  2. Write Report to Virtual Spool. Use NEW-PAGE PRINT ON option.
                NEW-PAGE PRINT ON PARAMETERS WF_PARAMS NO DIALOG.
                PERFORM WRITE_PDF_SUMMARY USING P_VALID            
                NEW-PAGE PRINT OFF.
    *===> 3. Prepare Path and set spool number.
    *===> 4. Convert List to PDF format.
                 Use function 'CONVERT_ABAPSPOOLJOB_2_PDF'
    *==> 5. download PDF file
                CALL FUNCTION 'GUI_DOWNLOAD'.
    and it's not showing readable download file.
    I don't have to change whole coding. I just want to increase that font.

  • How to compare all columns in a SELECT with all columns in a Cursor ?

    Hi All,
    I would like to know if something like this is possible in PL/SQL
    I have a cursor CUR1 which is a SELECT * FROM T1.
    And in my loop for every record found in CUR1 I am trying to retrieve its consecutive record in the table T2. Unfortunately T1 and T2 do not have a primary key so there are duplicates. But if I can compare each column of CUR1 with its respective column in T2, I can find the record. But the question is how ?
    So I tried something like this, but of course this is wrong, but hope this would give you an idea of what I trying
    VAR_T2 T2%ROWTYPE;
    CUR_T1 IS SELECT * FROM T1
    LOOP CUR_TI
    SELECT * INTO VAR_T2
    FROM T2 WHERE
    ‘ALL COLUMNS OF T2’ = ALL COLUMNS OF CUR1;
    So is there a easy way to accomplish this. Thank you, AJ

    As Walter says, this is simply an intersect if you are comparing all the columns.
    However, if you really must do it in a slow by slow, PL/SQL loop (no real valid reason why you would though)...
    DECLARE
      VAR_T2 T2%ROWTYPE;
      CUR_T1 IS
        SELECT * FROM T1;
    BEGIN
      FOR i IN CUR_TI
      LOOP
        SELECT * INTO VAR_T2
        FROM T2
        WHERE T2.col1 = i.col1
          AND T2.col2 = i.col2
          AND T2.col3 = i.col3
          AND T2.colN = i.colN;
      END LOOP;
    END;There is no simple mechanism for just saying "compare all the columns", you will have to specify each one individually in the WHERE clause.

  • How to select all columns in a trigger?

    I add a "before delete" trigger on a table, in order to insert the records to a backup table before they are deleted.
    but I cannot write like this : insert into t_backup select * from :old;
    The table has more than 30 columns so I don't want to select them one by one, how can I select all columns?

    Yes, it is possible by writing something like this :
    where col1 = :old.col1; But it is not directly supported. First, we need a package to remember all the OLD records:.... and please see below link for complete code in action :
    http://www.dbforums.com/oracle/925729-trigger-back-up-data.html
    What I am doing here, just copying the code and replacing "emp" with "test" (The table name on which I am going to apply this using notepad find and replace):
    SQL> select * from test_backup;
    no rows selected
    SQL> select * from test;
             A
             1
             2
             4
             5
    SQL> select * from test_backup;
    no rows selected
    SQL>
    create or replace package test_trg_pkg as
      type test_type is table of test%ROWTYPE index by binary_integer;
      test_tab test_type;
    end;
    create or replace trigger test_bds before delete on test
    begin
      test_trg_pkg.test_tab.delete;
    end;
    create or replace trigger test_adr after delete on test
    for each row
    declare
      -- To allow us to select the old values
      pragma autonomous_transaction;
    begin
      select *
      into   test_trg_pkg.test_tab(test_trg_pkg.test_tab.COUNT+1)
      from   test
      where  a = :old.a;  <----- Here you have to give your column name.
    end;
    create or replace trigger test_ads after delete on test
    begin
      for i in 1..test_trg_pkg.test_tab.COUNT loop
        insert into test_backup values test_trg_pkg.test_tab(i);
      end loop;
    end;
    SQL> delete from test where a=1;
    1 row deleted.
    SQL> select * from test_backup;
             A
             1
    SQL> delete from test where a=2;
    1 row deleted.
    SQL> select * from test_backup;
             A
             1
             2
    SQL>Regards
    Girish Sharma

  • How to bring all columns in a single/first page in report painter

    Hi Experts,
    There are 9 columns in a report painter which includes 1 lead column.
    7 columns comes in a first page including lead column and rest 2 columns goes to second page. This report is copied from another report where all columns comes in a first page only. if the original report comes in one page then why not the new report.
    Please suggest how to bring all columns in a single/first page in the new report.
    Please revert if I'm confused anywhere.
    Thanks in advance
    Arabinda

    Hi Rajneesh,
    Thanx for the quick reply. When I change the column width to 10 it comes in one page. But the requirement is to keep the column width to at least 12 or 14 and moreever the original report from where this report is copied having the same no of columns and the column width for original report is 14 and it comes in one page only.
    Do I need to do something more to achieve this. My question is how the original reports data comes in one page where as the current report having issue with same number of columns.
    Pls suggest.
    Thanx,
    Arabinda

  • What is the difference betwwen SELECT ALL Column and Select Speceific Colum

    Hi All,
    If the block size of the database is 8K and average row length is 2K and if we select all column of the table the I/O show that it had read more blocks then compare to
    specific column of the same table. Why is this?
    Secondly if Oracle brings a complete block is the db buffer cache, while reading block from disk, they why there is a difference of block count in two queries.
    This difference reveals to me when I check the EXPLAIN PLAN for two different queries against the same table but one select all columns and the other one select specific column.
    Kindly help me in clearing this confusion.
    Regards,
    Kamran

    user1514587 wrote:
    >
    Usually, indexes are smaller (contain fewer blocks) than the table - ergo, select empno from emp could be satisfied by reading fewer blocks.
    what if there is a composite Index on a table containing 3 to 4 columns and the size of table is in 100 of GB and Index size itself is vey large then I think Oracle will go for FTS and small Index scan will be expensive. Kindly Share your thoughts.
    Regards,
    KamranHandle:     user1514587
    Status Level:     Newbie (5)
    Registered:     May 9, 2011
    Total Posts:     21
    Total Questions:     13 (12 unresolved)
    I think you wastes everyone's time here since you rarely get answer to any posted question

Maybe you are looking for

  • How do I remove an iPad from my account?

    I used to have an iPad 2, and then I gave it to my friend, because I purchased the new iPad mini, but don't need it anymore. He is trying to sync it with his own account, but it is not letting him. What can I do to make it work for him and remove it

  • Jwsc does not compile dependencies

    I have a web service that is coded to make calls on an interface who's implementation is injected with Spring. As such, there is no direct reference to the implementation class, and it does not get compiled when I compile the web service with the JWS

  • Variable display

    I want the variable AudioFilesNumber to contain the number of files with extension = "CLASS" the variable does get incremented, but displays on each row. Is there a way to accumulate the count while readingrecords, then print the total whileprinting

  • Trouble opening a document

    How do i go about changing a .docm file to a .doc file if the file was sent to me through email.

  • HT1420 I am trying to deauthorize a computer and get an error message solution?

    I have 1 compter and 4 Apple devices authorized and bought a new computer. I'm trying to deauthorize the old to authorize the new but get an error message.