Standard Schedule Record Date update

Hi DM Gurus'
I have an requirement to Update the standard schedule records at the time of execution of E43A transaction . At the time of execution of the transaction it should compare with the custom table  and updates the dates in Standard schedule record (Table TE417 & TE418) .Please suggest any User Exit  or the method to cater this requirement.
Thanks ,
Harry.

Hi ,
The custom table having the data's ( scheduled dates) from Agents ,we need to align those dates with Standard schedule record dates (i.e Update the dates of std schedule dates with  the custom table dates) ....
Pls suggest the method to cater the reqt...
Thanks ,
Harry .

Similar Messages

  • Schedule Line Date Changed By Standard Code After User Exit

    We've implemented USEREXIT_MOVE_FIELD_TO_VBEP to conditionally change the schedule line date (it changes VBEP-EDATU) when sales orders are being created.  This functions correctly when VA01 or EDI is used.  However, when the order is created using BAPI_SALESORDER_CREATEFROMDAT2, standard code executing after the user exit changes the schedule line date to an incorrect value. 
    The user exit correctly changes the schedule line date; then later on in the execution subroutine VBEP_FUELLEN_VBEPKOM in include FV45EFEP_VBEP_FUELLEN_VBEPKOM is executed which changes the date on line 37 using the value in US_VBEPKOM-EDATU.  US_VBEPKOM-EDATU is in scope in the user exit, but earlier in subroutine VBEP_FUELLEN_VBEPKOM (line 12 to be exact) this variable is updated with the value in US_VBEPKOM1-EDATU, which is not in scope during the user exit.  So, USEREXIT_MOVE_FIELD_TO_VBEP doesn't have access to US_VBEPKOM1-EDATU and can not ensure that the correct value is used later on in subroutine VBEP_FUELLEN_VBEPKOM.
    I noticed at the end of subroutine VBEP_FUELLEN_VBEPKOM it calls USEREXIT_MOVE_FIELD_TO_VBEPKOM.  I could update VBEP-EDATU here to correct the error whenever the order is created using the BAPI, but it would be nice to have a solution that could be implemented only in USEREXIT_MOVE_FIELD_TO_VBEP without also having to implement USEREXIT_MOVE_FIELD_TO_VBEPKOM.
    So my question: is there a way to update the schedule line date in USEREXIT_MOVE_FIELD_TO_VBEP where it won't be changed later in subroutine VBEP_FUELLEN_VBEPKOM when the order is created using the BAPI?

    Hi Caetano,
    thanks for your suggestion
    Yes, we use firm zone for few of the vendors. there the system don't change the schedule lines.
    Also for the stock transfer PR's there is no firm zone and the lead time is one day. in this case it changes everyday after the MRP run.
    the stock transfer PR's leads to the creation of Schedule lines from the source plant. Since this PR gets changed everyday. the alerts coming out of MD07 gets changed and we really did not know if this order is delayed or not.  In the source plant we use the firm zone to avoid moving the schedule line. But then the alerts are always not correct.
    is there any setting which helps in not moving the PR everyday without using " start in the past"
    thanks
    Nagendra Kumar

  • Automatic Creation of Scheduled Master Record for Scheduled Master Data

    Hi experts,
    We know that MRU and Portion are Scheduled master data but Scheduled master record is transactional data. So it is obvious that we have to generate scheduled master record in every server wher we transport the master data manually. And we can generate records for a particular time span and after that time we have to generate the records again.
    All I want to know that whether it is possible to get all the records generated automatically after certain period.
    Thanks,
    Arghya

    Hi,
    Scheduled records do NOT get created automatically , altleast not by any sort of configuration, in case you are looking for it.
    Your can always create custom program to do so, but it isn't worth the effort.
    You can create records for upto 7yrs ( do need to check but definitely for a period long enough)
    Hope that helps!!!

  • Problem In Update Statement In Multiple Record Data Block

    Hi Friends,
    I have problem in update Statement for updating the record in multiple record data Block.
    I have two data Block the master block is single Record block and the 2nd data block is Multiple Record data Block.
    I am inserting the fields like category,and post_no for partiular job in single data block
    Now in second Multiple Record Data Block,i am inserting the multiple record for above fileds like no. of employees work in the position
    There is no problem in INSERT Statement as it is inerting all record But whenever i want to update particular Record (in Multiple Block) of employee for that category and Post_no
    then its updating all the record.
    my code is Bellow,
    IF v_count <> 0 THEN
    LOOP
    IF :SYSTEM.last_record <> 'TRUE' THEN
    UPDATE post_history
    SET idcode = :POST_HISTORY_MULTIPLE.idcode,
    joining_post_dt = :POST_HISTORY_MULTIPLE.joining_post_dt,
    leaving_post_dt = :POST_HISTORY_MULTIPLE.leaving_post_dt,
    entry_gp_stage = :POST_HISTORY_MULTIPLE.entry_gp_stage
    WHERE post_no = :POST_HISTORY_SINGLE.post_no
    AND category = :POST_HISTORY_SINGLE.category
    AND roster_no = :POST_HISTORY_SINGLE.roster_no;
    AND idcode = :POST_HISTORY_MULTIPLE.idcode;
    IF SQL%NOTFOUND THEN
    INSERT INTO post_history(post_no,roster_no,category,idcode,joining_post_dt,leaving_post_dt,entry_gp_stage)
    VALUES(g_post_no, g_roster_no, g_category, :POST_HISTORY_MULTIPLE.idcode, :POST_HISTORY_MULTIPLE.joining_post_dt,
    :POST_HISTORY_MULTIPLE.leaving_post_dt,:POST_HISTORY_MULTIPLE.entry_gp_stage);
    END IF;
    next_record;
    ELSIF :SYSTEM.last_record = 'TRUE' THEN
    UPDATE post_history
    SET idcode = :POST_HISTORY_MULTIPLE.idcode,
    joining_post_dt = :POST_HISTORY_MULTIPLE.joining_post_dt,
    leaving_post_dt = :POST_HISTORY_MULTIPLE.leaving_post_dt,
    entry_gp_stage = :POST_HISTORY_MULTIPLE.entry_gp_stage
    WHERE post_no = :POST_HISTORY_SINGLE.post_no
    AND category = :POST_HISTORY_SINGLE.category
    AND roster_no = :POST_HISTORY_SINGLE.roster_no;
    AND idcode = :POST_HISTORY_MULTIPLE.idcode;
    IF SQL%NOTFOUND THEN
    INSERT INTO post_history(post_no,roster_no,category,idcode,joining_post_dt,leaving_post_dt,entry_gp_stage)
         VALUES (g_post_no,g_roster_no,g_category,:POST_HISTORY_MULTIPLE.idcode,
              :POST_HISTORY_MULTIPLE.joining_post_dt,:POST_HISTORY_MULTIPLE.leaving_post_dt,:POST_HISTORY_MULTIPLE.entry_gp_stage);
    END IF;
    EXIT;
    END IF;
    END LOOP;
    SET_ALERT_PROPERTY('user_alert',ALERT_MESSAGE_TEXT, 'Record Updated successfuly' );
    v_button_no := SHOW_ALERT('user_alert');
    FORMS_DDL('COMMIT');
    CLEAR_FORM(no_validate);
    Please Guide me
    Thanks in advence

    UPDATE post_history
    SET idcode = :POST_HISTORY_MULTIPLE.idcode,
    joining_post_dt = :POST_HISTORY_MULTIPLE.joining_post_dt,
    leaving_post_dt = :POST_HISTORY_MULTIPLE.leaving_post_dt,
    entry_gp_stage = :POST_HISTORY_MULTIPLE.entry_gp_stage
    WHERE post_no = :POST_HISTORY_SINGLE.post_no
    AND category = :POST_HISTORY_SINGLE.category
    AND roster_no = :POST_HISTORY_SINGLE.roster_no;
    AND idcode = :POST_HISTORY_MULTIPLE.idcode;
    UPDATE post_history
    SET idcode = :POST_HISTORY_MULTIPLE.idcode,
    joining_post_dt = :POST_HISTORY_MULTIPLE.joining_post_dt,
    leaving_post_dt = :POST_HISTORY_MULTIPLE.leaving_post_dt,
    entry_gp_stage = :POST_HISTORY_MULTIPLE.entry_gp_stage
    WHERE post_no = :POST_HISTORY_SINGLE.post_no
    AND category = :POST_HISTORY_SINGLE.category
    AND roster_no = :POST_HISTORY_SINGLE.roster_no;
    AND idcode = :POST_HISTORY_MULTIPLE.idcode;These update statements are without where clause, so it will update all records.
    If it is specific to oracle forms then u may get better help at Forms section.

  • Scheduled finish date for process orders not updating in BW

    We are having problems with the scheduled finish date (GLTRS) for process orders. When the process order is already released, changes done in R/3 on the scheduled finish date will not result to a delta hence data in BW is not updated. Table AFKO, where data is coming from, is always updated with the changes though. 2LIS_04_P_MATNR is used in extracting the data.
    Has anyone experienced the same problem? We are looking for possible ways on how to have a delta whenever there are changes on the process order even after it is already released.
    Any help would be greatly appreciated...

    Hi Donna,
    If I've understood your problem correctly, you can increase the load frequency as Sriee has pointed out.
    If you want latest data frequently and if you are on BI 7.0 then you can look at Real Time Data Acquisition(RDA)
    Regards,
    Tom.

  • Master data update bringing in multiple records for single entry

    Hello,
    I found that if I deleted and reloaded data in a master data object, it was showing me correct number of records. However, just a full update was not overwriting it with correct number of data records. there were always 1 or 2 extra blank records. I thought master data update should overwrite previous records and we need not delete and reload it.
    Why would this happen?
    Thanks!

    Hi there,
    Are you refering to time dependent master data? From to values are present?
    If so, that's the correct situation, since BW (OLAP) instead of R/3 (OLTP) allows you to mantain historical data, i.e., a material can be valid from a specific time period with several attributes and other attributes can be valid for the same material in another time space.
    Diogo.

  • Updating schedule ship date and arrival date in SO

    Hello all,
    I want to update the sales orderline based on supplier PO changes.
    Can anyone let me know if I can use process order API to update the schedule ship date and arrival date.I have created a seperate procedure inorder to achieve the same which will inturn call oe_order_pub.Process_Line.Now am getting the following error:
    SQL_PLSQL_ERROR: N, ROUTINE, MO_GLOBAL.VALIDATE_ORGID_PUB_API, N, ERRNO, -20001, N, REASON, ORA-20001
    Any pointers to this is highly appreciated.
    Regards,
    Sumi.

    Hi all,
    Can anyone let me know if I can use process order API to update the schedule ship date and arrival date.Because sometimes am getting the above mentioned error but now am unable to see any error message but the status is error.
    Regards,
    Sumi.

  • Schedule Record after Billing Date

    Hi
    I found a problem when I was trying to bill an unmetered customer.
    We created scheduled record till 31.03.2012. Then we created the billing order for 31.03.2012.
    But when tried to bill the document, I got an error stating " No Scheduled record exists from 01.04.2012.
    Can anyone explain if somebody is billing till 31.03.2012, why scheduled records are needed from 01.04.2012 onwards.
    Thanks in advance for your help.
    Regards
    Satadal

    Hi,
    The system needs next schedule record for to identify  the next billing date.
    Generate  shcedule records for advanced periods.
    Regards,
    Narein

  • Trying to update Project scheduled finish date - newbie help needed!

    Guys, I am super new to Oracle Projects, I have never used it before.  I've just learned a few things in the UI and read through the docs documenting the stored procs.  My question is simple (hopefully)   In the UI I choose a responsibility, then under "Projects : Delivery" I choose "Search Projects", I enter the Project ID in the field and click Go, I am able to see all the project details and the Tasks.  No problem there!  What I would like to do through the Update_Project API is to change the "Scheduled Finish Date" of the Project.
    I have the following information that I have managed to scrape up:
    Project_id, Responsibility_id, User_id, Resp_Appl_Id
    I retrieved the project id using:
             Select project_id,name from pa_projects_all
              where name = 'My Project';
    So first I call set_global_info with the appropriate parameters, then this:
        -- SET GLOBAL VALUES
         pa_interface_utils_pub.set_global_info(
         p_api_version_number => 1.0,
         p_responsibility_id => fnd_profile.value('57203'),
         p_user_id => fnd_profile.value('1013415'),
         p_msg_count => l_msg_count,
         p_msg_data => l_msg_data,
         p_return_status => l_return_status);
         l_project_in.pa_project_id := 4608;
         l_project_in.scheduled_finish_date := to_date('2008-02-27', 'YYYY-MM-DD');
      --UPDATE_PROJECT
              pa_project_pub.UPDATE_project(
                        l_api_version_number,
                        p_commit => l_commit,
                        p_init_msg_list => l_init_msg_list,
                        p_msg_count => l_msg_count,
                        p_msg_data => l_msg_data,
                        p_return_status => l_return_status,
                        p_workflow_started => l_workflow_started,
                        p_pm_product_code => null,
                        p_project_in => l_project_in,
                        p_project_out => l_project_out,
                        p_key_members => l_key_members,
                        p_class_categories => l_class_categories,
                        p_tasks_in => l_tasks_in,
                        p_tasks_out => l_tasks_out);
    What I am getting is the message "error :Project ID is invalid" and the status is "E"
    I'm not sure why it is invalid as it is the exact Project ID from the projects table.  The only thing I can think of is that the p_pm_product_code is set to null but I am not sure where this value comes from and why it even matters.  I checked the documents and it says it refers to some external system.  Why does the external system code matter if I am changing data within Oracle Projects?

    Hello,
    Looks like you are not setting the Initialization values correctly. Oracle Project APIs are Org specific and require proper initialization before being called for them to work.
    Few things i noticed from the code is :
    1.  The following is being used to set the User ID and Responsibility ID  :
         p_responsibility_id => fnd_profile.value('57203'),
         p_user_id => fnd_profile.value('1013415'),
    I think the call should be like this. This should be used only if you are going to call the API through a concurrent program from the submit request window (Oracle Apps environment). fnd_profile.value will get the responsibility id and the used id of the user running the program and assign it to the variables.
         p_responsibility_id => fnd_profile.value('RESP_ID'),
         p_user_id => fnd_profile.value('USER_ID'),
    Or If you are directly passing the IDs hardcoded then, This can be used if you are running the script from a Non-Oracle Applications environment, for example from SQL*Plus.
         p_responsibility_id => 57203
         p_user_id => 1013415
    2. I notice that you are not passing P_OPERATING_UNIT_ID parameter in the call to pa_interface_utils_pub.set_global_info. This is fine if you are not using MOAC  and you have set MO: Operating Unit profile for the responsibility being passed.  If you are using MOAC or are not sure, then it is always a good practice to explicitly  pass the P_OPERATING_UNIT_ID parameter in the call to pa_interface_utils_pub.set_global_info.
    Note :  DO NOT use fnd_profile.value('ORG_ID') to set the P_OPERATING_UNIT_ID parameter. In a MOAC environment this may not work.
    3. Always ensure you check the return status of the pa_interface_utils_pub.set_global_info for success before calling the Project APIs. This will save you a lot of frustration when testing.
    4. You might find the following note useful
    Project API Overview and Reference (Doc ID 1424156.1)
    Regards,
    Raghavan Gopalakrishnan

  • Is there any method to stop rescheduling of the PO Need By date from ATP if there is any holiday specified in shipping calender. The requirement is to update the schedule ship date on Sales Order but the lead time of  Purchase Order should not increase

    We are currently not able to manage schedule ship date proposed by ATP when our warehouse is closed. For example , we would like that ATP doesn't propose any schedule ship date for the first of May , which is a non working day in France. The constraint is that we don't want our purchase need by date to be impacted by the process.
    I tried to closed one day in FR1 calendar and, after testing with order management, it appears that ATP didn't propose the closed day, so that's fine, but, our purchase order lead time was increased of 1 day and this is not what we expected.
    Can you help us to find the right process.
    Thanks

    Hi Sandeep,
    when we try to Rescheduled out the PO and the request is errored out the with the error:-
    Start of log messages from FND_FILE
    reschedule fails
    old date in planner workbench: 19-MAY-11
    new date: 07-JUN-11
    header: 417474
    line: 605652
    po number: 2049031859
    shipment no: 1
    The need by date/promised date in the source instance is not the same as the need by date/promised date in the destination instance.
    In the source instance,
    The need by date is 19-MAY-11, and the promised date is 19-MAY-11
    End of log messages from FND_FILE
    ---------------------------------------------------------------------------

  • Update AP Invoice Payment Schedule (Due Date)

    Dear All,
    Is there any API for AP Invoice Payment Schedule (Due Date) in Oracle EBS R12.
    Please advice.
    Thanks

    Hi there,
    Im afraid there is no setting that will have the system post different payment terms in the invoice reduction
    than what is in the invoice. In MIRO, if you use PO reference to create the IV document, the payment terms are copied from the PO and not from the vendor master. The business reason is, that the PO represents the contract between vendor and customer including the terms of payment. Also check out note 322430 as this gives a good description of the proposal logic for the terms of payment.
    I hope this helps,
    Best regards,
    Adam.

  • Schedule line date change in VA01/VA02

    Hi,
    My requirement is to update the schedule line date taking the lead time from purchasing info record.
    As per SAP standard it takes the factory days into consideration while generating the confirmed delivery date.
    But we have to update the date taking the working days into conideration.
    The material has multiple vendors.
    The actual vendor proposed by the sstem and the corresponding info record details are not available at the time of saving the sales order.
    I am populating this details from exit EXIT_SAPLMEQR_001 inside FM ME_SEARCH_SOURCE_OF_SUPPLY which is triggered before creating the purchase requisition.
    USEREXIT_MOVE_FIELD_TO_VBEP cannot be used because this is triggered at the very early stage before the FM is triggered.
    Can some one please guide me who has worked on the similar situation to solve this problem.
    Many Thanks.
    Regards,
    Babul.

    Use the form routine "USEREXIT_SAVE_DOCUMENT_PREPARE" in 'MV45AFZZ".  Modify the field "edatu" in strucutre "xvbep"
    Regards
    Vinod

  • In GATP would like to push schedule delivery date+1 day

    Hi Experts:-
    We have below requirement  in GATP:-
    Can we maintain a condition record for pick /pack time  = 1 day against Shipping Point in particular Location.? In other word we would like to push schedule delivery date+1 day.
    In APO we can see control data :- Plan (LEAD), load (LOAD), pick/pack (PICK), transport (TRAN), unload (UNLD)
    In APO We have maintained  value = 24:00 for location XXXX ( as per below steps)
    1.     In the SAP Easy Access screen choose Master Data ® Master Data for Transportation and Shipment Scheduling ® Create Scheduling Step.
    2.     Select a condition type.
    3.     Enter concrete values for the key combination.
    4.     Enter a duration (external display: hhhhhhh:mm).
    While checking order, When the process branches into APO ATP, can see time 24:00 This seems to indicate that Pick/Pack record has now been found, but the scheduled delivery date is not being pushed out by one extra day.
    Looking at the condition log in APO shows the following;;
    Lead Plan:304 Access for Access sequence LEAD missing(Usage U)
    Pick Pick : 208 Condition record has been found
    Load Load: 304 Access for Access sequence LOAD missing(Usage U)
    TRAN Transport: 009 Condition record is missing
    UNLD Unload :  002 Access not made ( Initialized field)
    Can you suggest.

    Hi DB,
    Thanks, Very helpful links.
    I did some testing on various sets of data change in APO for PICK and TRAN :-
    Parameters :-     
    Order creation date     2-Nov
    Route YR0004= 4 days     
    Calendar :-Sat and Sun holidays  & 11th Nov bank holiday     
    Test 1 with 0 Day pick time, No TRAN maintained :-
    Delivery date     8-Nov
    Gi Date     7-Nov
    Loading date     7-Nov
    MAD     7-Nov
    Transportation planning date     7-Nov
    Test 2 with 1 day pick time, No TRAN maintained :-
    Delivery date     8-Nov
    Gi Date     7-Nov
    Loading date     7-Nov
    MAD     4-Nov
    Transportation planning date     7-Nov
    Test 3 with 3 day pick time, No TRAN maintained :-
    Delivery date     8-Nov
    Gi Date     7-Nov
    Loading date     7-Nov
    MAD     2-Nov
    Transportation planning date     7-Nov
    Test 3 with 5 day pick time, No TRAN maintained :-
    Delivery date     9-Nov
    Gi Date     9-Nov
    Loading date     9-Nov
    MAD     2-Nov
    Transportation planning date     9-Nov
    Now next scenario only TRAN without PICK
    Test1 with 1 day TRAN time
    Delivery date     8-Nov
    Gi Date     4-Nov
    Loading date     4-Nov
    MAD     4-Nov
    Transportation planning date     4-Nov
    *with 2 day and 3 day result is same as test1
    Test2 with 4 day TRAN time
    Delivery date     8-Nov
    Gi Date     3-Nov
    Loading date     3-Nov
    MAD     3-Nov
    Trasnportation planning date     3-Nov
    Test3 with 7 day TRAN time
    Can see Delivery Date moving ahead one day.
    Delivery date     9-Nov
    Gi Date     2-Nov
    Loading date     2-Nov
    MAD     2-Nov
    Trasnportation planning date     2-Nov
    Now next scenario  is to maintain data in both PICK and TRAN
    Test 1 with 1 days pick time+ 1 day Tran
    Delivery date     8-Nov
    Gi Date     4-Nov
    Loading date     4-Nov
    MAD     3-Nov
    Transportation planning date     4-Nov
    Test 2 with 1 days pick time+ 6 day Tran
    Delivery date     9-Nov
    Gi Date     3-Nov
    Loading date     3-Nov
    MAD     2-Nov
    Trasnportation planning date     3-Nov
    Would like to know is this the correct standard behaviour or something wrong with our system config.
    regards
    Samir
    Edited by: Samir Ali on Nov 3, 2011 4:07 PM

  • Delivery is not possible as per Schedule line dates

    Hi Gurus,
    The schedule lines insales order are for eaxample---
    01.12.2008  -   10 pieces (quantity)
    15.12.2008  -   10
    10.01.2009  -   10
    25.01.2009  -   10
    Tried to deliver the quantity 10 dated 15.12.2008 in the last after all the materials pertaining to other dates are delivered, but system is throwing error as no schedule lines for dated 15.12.2008. But when i checked, delivery is not done for 15.12.2008 and the rest are completed.
    But system allows to deliver the balance 10 quantity either on 25.01.2009 or on a future date but not on 15.12.2008 on which delivery was not done.
    What could be the reason????
    Thanks for your help
    MM

    Hi
    When I see the schedule line in the sales order where in the qty in the delivered qty column (second column from the confirmed qty column) is updated item wise irrrespective of the delivery done as per scheduleline date.
    It means though the delivery and PGI is not done for the date 15.12.2008, but the qty in the delivery qty column is updated and the balace to to be delivered shows for the last date.
    So here iam able to deliver only on the last date i.e. 25.01.2009 or at a later date for the schedule line date missing in between and not on the specific date.
    Is this how SAP standard works - I was wondering why i cannot deliver any schedule line qty and date later after delivering quantities of the subsequant schedule lines.

  • Some question on IDOC (Control Record/Data Record/Status Record)

    Dear all,
    I am new in this area, and would like to enquire some question on this topic.
    When I view a IDOC via WE02, each of the IDOC record will consist of Control Record/Data Record/Status Record).
    Questions:
    I notice that the data records consists of many segment (i.e. E1EDK01, etc) which are use to store application data.
    1 - My question is do I have to manually create all these segment and do a mapping to my application field one by one (i.e. that is when I want to create a brand new message type from scratch)?
    2 - If question no. 1 is Yes, how to do it, what are the transaction code to create it? can you show me the step by step.
    3 - I don't have to create the Control record and the status record for my new message type right ? because those field value will automatically pull out from partner profile and system status message, am I correct?
    Thanks.
    Tuff

    Hi Tuff,
    As everything in SAP, with IDOCs too there are
    1) Standard IDOCs
    2) Standard IDOCs(Extending - Enhancement to an IDOC, to accomodate for custom values)
    3) Custom IDOCs
    And every IDOC has,
    Control record - EDIDC Structure - This mostly reflects the partner profile information, along with few more details which are used for IDOC extension, Sequencing etc
    Data Records - EDID4 Structure - These records contain the actual business data of the document in concern. So for ORDERS05 it would contain order details, INVOIC02 - Invoice details so on...
    Status Records - These records capture the status of an IDOC from the time it is received/sent from your system and a corresponding business document is created/changed. So this will have messages like "IDOC sent to the port OK" etc which are status from the communication layer(ALE) to application specific messages like "Sales Order XXX created" or "Invalid Material" etc.
    You would have noticed something called as Process code in the partner profile, this is associated with a FM(or work flow task etc) which has the business logic coded in.
    So in case of an Inbound IDOC, the sending system updates the IDOC - Control and Data records, and sends it to the receiving system. On the receiving system the IDOC's control record is validated against the partner profiles set, if an entry is found then using the process code it finds the associated FM which will decode the data from the IDOC data records as per the IDOC type and then use it to post data into SAP (VIA BDC, Batch Input, BAPI etc).
    And all this while the Status records are being updated accordingly.
    So with the above context will try to answer your questions,
    1 - My question is do I have to manually create all these segment and do a mapping to my application field one by one (i.e. that is when I want to create a brand new message type from scratch)?
    In case of a custom IDOC, yes you will have  to.
    In case of a standard IDOC, you wouldn't have you just have set up the necessary configuration (Partner Profile, Process code etc)
    In case of a standard IDOC extended to accommodate for some custom values(for which there are no fields in standard IDOC - Let us say you have added some new fields on VA01) - In this case you can still use the standard Process code and Standard FM associated with it, SAP provides several Function exits in these FM's which you can leverage to add your custom logic.
    2 - If question no. 1 is Yes, how to do it, what are the transaction code to create it? can you show me the step by step.
    There are several documents available on the net and on SDN detailing step by step approach for all the above three cases,
    just search for step by step guide for IDOCS - sap.
    3 - I don't have to create the Control record and the status record for my new message type right ? because those field value will automatically pull out from partner profile and system status message, am I correct?
    Again it depends, in case of using a standard IDOC you wouldn't have to. But in case you have some customizations/enhancements then you might have to.
    For Ex: updating the control record accordingly for indicating that you have extended the standard IDOC. Or append custom messages to the status record as per the business logic.
    Try out the examples you find on the net and post any specific questions you might have.
    Regards,
    Chen

Maybe you are looking for