How to add calendar enries to all users in organization using powershell and EWS.

I am one of the exchange admins for our organization.  Every year, we publish academic calendar data to all faculty and staff calendars.  We recently updated and migrated from Exchange 2003 to Exchange 2010 which, of course, desupported MAPI and
ADO.  The processes we previously used had to be re-written using Exchange Web Services API (EWS).  Because I find that powershell is easy to work with, I wanted to integrate the calendar dispersal using powershell.
Having not found much help online using the EWS .NET library in powershell for this purpose, I decided to share my code:
# Bulk load calendar entries script
# Description:
# Script used to deploy Academic Calendar entries to all Exchange account calendars
# Prerequisites:
# Service account must have ApplicationImpersonation ManagementRoleAddisgnment
# New-ManagementRoleAssignment -Name:impersonationRole -Role:ApplicationImpersonation -User:<srv_account>
# Usage:
# .\academicCalendar.ps1 calEntries.csv
# Where calEntries.csv = list of calendar entries to add
Param ([string]$calInputFile = $(throw "Please provide calendar input file parameter..."))
$startTime = Get-Date
$strFileName = "<path to log file>"
if(Test-Path $strFileName)
$logOutFile = Get-Item -path $strFileName
else
$logOutFile = New-Item -type file $strFileName
# Load EWS Managed API library
Import-Module -Name "C:\Program Files\Microsoft\Exchange\Web Services\1.0\Microsoft.Exchange.WebServices.dll"
# Load all Mailboxes
$exchangeUsers = Get-Mailbox -ResultSize Unlimited | Select PrimarySmtpAddress
# Load all calendar Entries
# Input file is in the following format
# StartDate,EndDate,Subject
# 8/29/2011,8/30/2011,First Day of Fall Classes
$calEntries = Import-Csv $calInputFile
# Setup the service for connection
$service = new-object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010)
$service.Url = new-object System.Uri("https://<CAS_server_URL>/ews/exchange.asmx")
$service.Credentials = new-object Microsoft.Exchange.WebServices.Data.WebCredentials("<service_account>","<password>","<domain>")
$totalCount = $exchangeUsers.Count
$currentCount = 0
Write-Output "Exchange Version: $service.RequestedServerVersion"
Write-Output "Mailbox Count: $totalCount"
# Add message to log file
$timeStamp = Get-Date -Format "MM/dd/yyyy hh:mm:ss"
$message = "$timeStamp -- Begin Calendar Deployment `n"
$message += "Total Exchange Accounts: $totalCount"
Add-Content $logOutFile $message
# Perform for each Mailbox
$error.clear()
foreach($mailbox in $exchangeUsers)
$currentCount++
if($mailbox.PrimarySmtpAddress -ne "")
# Output update to screen
$percentComplete = $currentCount/$totalCount
Write-Output $mailbox.PrimarySmtpAddress
"{0:P0}" -f $percentComplete
# Setup mailbox parameters for impersonation
$MailboxName = $mailbox.PrimarySmtpAddress
$iUserID = new-object Microsoft.Exchange.WebServices.Data.ImpersonatedUserId([Microsoft.Exchange.WebServices.Data.ConnectingIdType]::SmtpAddress,$MailboxName)
$service.ImpersonatedUserId = $iUserID
# Indicate which folder to work with
$folderid = new-object Microsoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Calendar)
$CalendarFolder = [Microsoft.Exchange.WebServices.Data.CalendarFolder]::Bind($service,$folderid)
# For each entry in the input file
$error.clear()
foreach($entry in $calEntries)
# First check to make sure the entry is not already in the calendar
# use a calendarview object to pull the entries for the given date and make sure an entry with the same subject line doesnt already exist
$cvCalendarview = new-object Microsoft.Exchange.WebServices.Data.CalendarView([System.DateTime]($entry.StartDate),[System.DateTime]($entry.EndDate))
$cvCalendarview.PropertySet = new-object Microsoft.Exchange.WebServices.Data.PropertySet([Microsoft.Exchange.WebServices.Data.BasePropertySet]::FirstClassProperties)
$frCalendarResult = $CalendarFolder.FindAppointments($cvCalendarview)
$entryFound = $False
foreach ($appointment in $frCalendarResult.Items)
if($appointment.Subject -eq $entry.Subject)
$entryFound = $True
# If entry was found, then skip this entry
if($entryFound)
$entryFound = $False
else # Create the appointment object and save it to the users calendar
$appt = New-Object Microsoft.Exchange.WebServices.Data.Appointment($service)
$appt.Subject = $entry.Subject
$appt.Start = [System.DateTime]($entry.StartDate)
$appt.End = [System.DateTime]($entry.EndDate) #For AllDayEvent, end date must be after start date
$appt.IsAllDayEvent = $True #Set event as "All Day Event"
$appt.LegacyFreeBusyStatus = "Free" #Make sure free/busy info shows user as "free" rather than "busy"
$appt.IsReminderSet = $False #Make sure reminder is not set to remind the user of the event
$appt.Save([Microsoft.Exchange.WebServices.Data.SendInvitationsMode]::SendToNone)
if($error)
$timeStamp = Get-Date -Format "MM/dd/yyyy hh:mm:ss"
$message = $timeStamp + "...Exception Occurred while processing Save for: `n"
$message += " Account: " + $MailboxName + "`n"
$message += " Subject: " + $entry.Subject + "`n"
$message += " Exception: " + $error[0].Exception + "`n"
Add-Content $logOutFile $message
$error.clear()
if($error)
$error.clear()
else
$message = "" + $MailboxName + "`t Success! `n"
Add-Content $logOutFile $message
Write-Output $currentCount
$endTime = Get-Date
$duration = New-TimeSpan $startTime $endTime
$totalMin = $duration.TotalMinutes
# Build and send email notification upon completion
$body = "The Calendar deployment has completed. `n `n "
$body += "Start Timestamp: $startTime `n "
$body += "End Timestamp: $endTime `n "
$body += "Duration: $totalMin min `n "
$body += "Exchange accounts affected: $currentCount `n"
$smtpServer = "<mysmtpserver>"
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$msg = new-object Net.Mail.MailMessage
$msg.From = "<from_email_address>"
$msg.To.Add("<to_email_address>")
$msg.Subject = "Calendar Deployment"
$msg.Body = $body
$smtp.Send($msg)
# Add closing message to log file
$timeStamp = Get-Date -Format "MM/dd/yyyy hh:mm:ss"
$message = "Accounts affected: $currentCount"
Add-Content $logOutFile $message
$message = "$timeStamp -- Completed in $totalMin min."
Add-Content $logOutFile $message
Please let me know if you think I can make any performance modifications.
Daniel
--Edit-- I have updated the script for Exchange 2010 SP1, also added logging, error checking and email notifications.  This new script also checks first to make sure the appointment doesn't already exist before adding it.  (To prevent multiple
entries of the same event... Note: This check, although necessary in my opinion, is very time consuming.)

Hi Daniel
I am trying to add addition propertires like TV, Copier etc. to Room Mailbox in Exchange 2010 using following commands:-
[PS] C:\Windows\system32>$ResourceConfiguration = Get-ResourceConfig
[PS] C:\Windows\system32>$ResourceConfiguration.ResourcePropertySchema+=("Room/Whiteboard")
Upper two commands run fine but following command gives error:-
[PS] C:\Windows\system32>Set-ResourceConfig -ResourcePropertySchema $ResourceConfiguration.ResourcePropertySchema
The term 'Set-ResourceConfig' is not recognized as the name of a cmdlet, function, script file, or operable program. Ch
eck the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:19
+ Set-ResourceConfig <<<<  -ResourcePropertySchema $ResourceConfiguration.ResourcePropertySchema
    + CategoryInfo          : ObjectNotFound: (Set-ResourceConfig:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
I also tried with space after set but still getting error:
[PS] C:\Windows\system32>Set -ResourceConfig -ResourcePropertySchema $ResourceConfiguration.ResourcePropertySchema
Set-Variable : A parameter cannot be found that matches parameter name 'ResourceConfig'.
At line:1 char:20
+ Set -ResourceConfig <<<<  -ResourcePropertySchema $ResourceConfiguration.ResourcePropertySchema
    + CategoryInfo          : InvalidArgument: (:) [Set-Variable], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.SetVariableCommand
Pl advise the solution at [email protected] . I got this help from
http://zbutler.wordpress.com/2010/03/17/adding-additional-properties-to-resource-mailboxes-exchange-2010/

Similar Messages

  • How to make bookmarks appear in all user accounts w/out importing and exporting everytime.

    Hello, all. I'm imaging a couple of laptops to be sent out. I want the bookmarks on the admin user account to be applied to the network domain user accounts or roaming profile is you will. Is there a way to this without have to import/export?

    I am trying to do the same thing. I also cant get it to work. I am
    thinking it may have something to do with the concept of ScopedResponse, but
    I am not sure. There is very little documentation and more importantly
    examples of how to make sense of the getOuterResponse() method. Dev2Dev and
    Google are of no help.
    Anyone care to explain this to us?
    Michael.
    "Zhenhao Qi" <[email protected]> wrote in message
    news:3fd4f634$[email protected]..
    >
    Hi All,
    I have a jsp page to display a table. I want to add a "excel download"button
    in this page, once user click this button, it will invoke the microsoftexcel
    and all table content will appear in the excel spreadsheet.
    I tried to set the content: <%@ pagecontentType="application/vnd.ms-excel"%>
    the rest code as following. However, it won't work for me. Does anyone hasany
    experience in doing this?
    <%@ page contentType="application/vnd.ms-excel"%>
    <%@ taglib uri="netui-tags-databinding.tld" prefix="netui-data"%>
    <%@ taglib uri="netui-tags-html.tld" prefix="netui"%>
    <%@ taglib uri="netui-tags-template.tld" prefix="netui-template"%>
    <netui:html>
    <head>
    <title>
    Web Application Page
    </title>
    </head>
    <body>
    <table border="1">
    <tr style="background-color:#3366ff;font-family:arial;">
    <td>Structure</td>
    <td>Compound</td>
    <% // Get the Items from the request stream
    Vector mr_names = (Vector) request.getAttribute("method_result_names");
    for (int f=0;f<mr_names.size();f++) {
    out.println("<td>" + mr_names.get(f) + "</td> ");
    Vector mrs = (Vector)request.getAttribute("method_results");
    for (int g=0; g<mrs.size(); g++)
    out.println("</tr><tr>");
    Vector row1 = (Vector)mrs.get(g);
    for (int f=0;f<mr_names.size()+1;f++) {
    String s = (String)row1.get(f);
    if (f==0) {
    %>
    <td><embed src="structure.jsp?Sample_code=<%=s%>"width="120" height="100"></embed></td>
    >
    <%
    out.println("<td>" + s + "</td> ");
    out.println("</tr>");
    %>
    </table>
    </body>
    </netui:html>
    Thanks!
    Zhenhao

  • How to add the values of all selected columns in a table and display it ?

    Hi all,
    I am using jdeveloper 11.1.1.6.0
    Page:
    my page jsff page contains one ADF table and one textbox
    DB:
    i have two database tables A & B ,
    i need 2 columns from each table . say (A.product_no ,A.product_name,B.prodeuct_price ,B.confirm)
    here product_no is primary key and present in both tables.
    i need to create a VO combining these two tables and put it as ADF table in a jspx page
    Functionality :
    my 'confirm' field is a checkbox field in table . whenever the checkbox is selected,
    the corresponding price will be getting added and display it in a textbox.
    Eg:
    if my first 4 price values are 3000 , 2000 ,4000,2000
    and if i select first 3 values , then the text box should contain 9000 value.
    i need help ...
    Problem:
    i need help in creating VO and functionality part

    Hi,
    it is easy: create an entity object for every table and one view object where you select your both entity objects and join them in your select statement.
    Your desired 'confirm' functionality could be achieved with helpp of view object transient attributes - for more information see: http://docs.oracle.com/cd/E21764_01/web.1111/b31974/bcquerying.htm#CHDHJHBI
    Regards
    Pavol

  • Publish calendar events to all users without invitation

    Hello,
    I was wondering how i can publish a calendar event on all user mailboxes without the acknowledgements of invitations.
    i.e. i want one person in our organisation to publish and maintain all mandatory holidays.
    I can not find a suitable way to do this as all of the users will get invitations wich they can ignore or forget. I want this person to publish events while overruling the possibilty of accepting invitations.  
    We are running Windows Server 2008R2 with Exchange Server 2010. 

    Hi,
    We can create all holiday events in a calendar and export the calendar to a PST file. Then using New-MailboxImportRequest cmdlet in Exchange 2010 to import the calendar to all users mailboxes by administrator.
    To import the calendar to all mailboxes, we can run:
    Get-mailbox | New-MailboxImportRequest –FilePath \\Exch1\pst\HolidayCalendar.pst -IncludeFolders “#Calendar#”
    Here are two articles about the detailed information:
    Holiday Calendar and How Import to Mailboxes
    http://blogs.technet.com/b/manjubn/archive/2012/01/14/holiday-calendar-and-how-import-to-mailboxes.aspx
    Import Calendar Events into all Mailboxes in Exchange Server
    http://slipstick.com/exchange/cmdlets/import-calendar-events-mailboxes-exchange-server/
    Thanks,
    Winnie Liang
    TechNet Community Support

  • How to add administrator group to weblogic user

    Hi All,
    How to add Administrator Group to weblogic user if weblogic user is accidently removed from Administrator group.
    Weblogic version is 10.0.1.0.
    Thank you in Advance!!!
    Cheers,
    Ankur

    http://docs.oracle.com/cd/E21764_01/apirefs.1111/e13952/taskhelp/security/ManageUsersAndGroups.html

  • Create User Activity: How to add Roles to the new user

    Hi all,
    My Problem is Using LC Workbench I have created one process it is having Create User Activity. I am able to creating the new user with this process.
    But I dont have idea how to add roles to that new user? Please anybody can help me out
    Thanks in advance.

    Hi,
      I used Built-in Componets till now, Please help me out What are the steps needed to implement a custom componet.
    Thanks in advance

  • How to find the list of all user exits modified by the users

    How to find the list of all user exits using by in R3

    Hi Mohamed
    You use Solution Manager to do the comparison for you.  There are some nice features that will highlight all your customised coding.  Have a look at the SolMan resources on the Support Portal e.g. using SolMan for upgrade comparisons.
    Rgards
    Carl.

  • How to add column dynamically based on user input in oracle?

    **how to add column dynamically based on user input in oracle?**
    I am generating monthly report based on from_date to to_date below is my requirement sample table
    EMPLOYEE_CODE| Name | CL_TAKEN_DATE | CL_BALANCE | 01-OCT-12 | 02-OCT-12 | 03-OCT-12
    100001.............John...........02-OCT-12...............6
    100002.............chris...........01-OCT-12...............4
    Based on user input, that is, if user need the report from 01-OCT-12 TO 03-OCT-12, i need to add that dates as column in my table, like 01-OCT-12 | 02-OCT-12 | 03-OCT-12....
    below is my code
    create or replace
    procedure MONTHLY_LVE_NEW_REPORT_demo
    L_BUSINESS_UNIT IN SSHRMS_LEAVE_REQUEST_TRN.BUSINESS_UNIT%TYPE,
    --L_LEAVE_TYPE_CODE           IN SSHRMS_LEAVE_REQUEST_TRN.LEAVE_TYPE_CODE%TYPE,
    L_DEPARTMENT_CODE IN VARCHAR2,
    --L_MONTH                    IN SSHRMS_LEAVE_REQUEST_TRN.LVE_FROM_DATE%TYPE,
    L_FROM_DATE IN SSHRMS_LEAVE_REQUEST_TRN.LVE_FROM_DATE%TYPE,
    L_TO_DATE in SSHRMS_LEAVE_REQUEST_TRN.LVE_TO_DATE%type,
    MONTHRPT_CURSOR OUT SYS_REFCURSOR
    AS
    O_MONTHRPT_CURSOR_RPT clob;
    v_return_msg clob;
    BEGIN
    IF (L_BUSINESS_UNIT IS NOT NULL
    AND L_FROM_DATE IS NOT NULL
    and L_TO_DATE is not null
    -- AND L_DEPARTMENT_CODE IS NOT NULL
    THEN
    OPEN MONTHRPT_CURSOR FOR
    select EMPLOYEE_CODE, EMPLOYEE_NAME AS NAME, DEPARTMENT_CODE AS DEPARTMENT,DEPARTMENT_DESC, CREATED_DATE,
    NVL(WM_CONCAT(CL_RANGE),'') as CL_TAKEN_DATE,
    case when NVL(SUM(CL2),0)<0 then 0 else (NVL(SUM(CL2),0)) end as CL_BALANCE,
    from
    SELECT DISTINCT a.employee_code,
    a.EMPLOYEE_FIRST_NAME || ' ' || a.EMPLOYEE_LAST_NAME as EMPLOYEE_NAME,
    a.DEPARTMENT_CODE,
    a.DEPARTMENT_DESC,
    B.LEAVE_TYPE_CODE,
    B.LVE_UNITS_APPLIED,
    B.CREATED_DATE as CREATED_DATE,
    DECODE(b.leave_type_code,'CL',SSHRMS_LVE_BUSINESSDAY(L_BUSINESS_UNIT,to_char(b.lve_from_date,'mm/dd/yyyy'), to_char(b.lve_to_date,'mm/dd/yyyy'))) CL_RANGE,
    DECODE(B.LEAVE_TYPE_CODE,'CL',B.LVE_UNITS_APPLIED)CL1,
    b.status
    from SSHRMS_EMPLOYEE_DATA a
    join
    SSHRMS_LEAVE_BALANCE C
    on a.EMPLOYEE_CODE = C.EMPLOYEE_CODE
    and C.STATUS = 'Y'
    left join
    SSHRMS_LEAVE_REQUEST_TRN B
    on
    B.EMPLOYEE_CODE=C.EMPLOYEE_CODE
    and c.EMPLOYEE_CODE = b.EMPLOYEE_CODE
    and B.LEAVE_TYPE_CODE = C.LEAVE_TYPE_CODE
    and B.STATUS in ('A','P','C')
    and (B.LVE_FROM_DATE >= TO_DATE(L_FROM_DATE, 'DD/MON/RRRR')
    and B.LVE_TO_DATE <= TO_DATE(L_TO_DATE, 'DD/MON/RRRR'))
    join
    SSHRMS_LEAVE_REQUEST_TRN D
    on a.EMPLOYEE_CODE = D.EMPLOYEE_CODE
    and D.LEAVE_TYPE_CODE in ('CL')
    AND D.LEAVE_TYPE_CODE IS NOT NULL
    group by EMPLOYEE_CODE, EMPLOYEE_NAME, DEPARTMENT_CODE, DEPARTMENT_DESC, CREATED_DATE
    else
    v_return_msg:='Field should not be empty';
    end if;
    END;
    my code actual output
    EMPLOYEE_CODE| Name | CL_TAKEN_DATE | CL_BALANCE
    100001....................John............02-OCT-12.................6
    100001....................chris...........01-OCT-12.................4
    how to add column dynamically based on from_date to to_date?
    Thanks and Regards,
    Chris Jerome.

    You cannot add columns dynamically. But you can define a maximum number of numbers and then hide unused columns in your form useing SET_ITEM_PROPERTY(..,VISIBLE, PROPERTY_FALSE);

  • How to add 'Confidential' watermark to all the pages in portal

    Hi
    How to add 'Confidential' watermark to all the pages in portal.We have ESS/MSS business packages installed 60.1, 60.2.
    ECC5, EP SP16 is the environment.
    Help will be appreciated
    Thanks
    Sharath

    Hi Sharath,
    What about using the theme editor to add a background to either the page or the iView tray?
    Daniel

  • SNR License Issue. How Can I Disable SNR for all Users?

    Hi,
    I Have an issue with SNR on CUCM 10.5 and with assignement of license type
    I have a cluster with 400 users.
    200 users use ip phone 3905 and should be use an Essential License.
    When system check for assignement of license type , itassign a Basic License instead of an Essential License, because it see that users have SNR Enabled.
    All users in my system have SNR enabled, and I can not disable it. All my user have Enable Mobility unchecked, and all my phone have Device Mobility Off, but system however see SNR enable.
    How can i disable SNR for all users? This is a feature that client don't need.
    I dont' have a sufficent number of licenses for support all 3905 in Basic License.
    thanks for help.
    Andrea

    Well actually, Mobile Identity wouldn't apply to a 3905 unless those phones had another line on a Dual-Mode device like an iPhone or Android phone.  So unless you have either of those in your system you can scratch that idea.  Someone else may chime in here and try to help a bit more as RD/RDP are the main SNR culprits.

  • How to create delivery device for all users ?

    hi
    help needed ...
    i activated delivery tool
    but i dont know how to create email devices for all users
    is there any api / manual action
    obiee version : Oracle Business Intelligence 10.1.3.4.1
    thanks
    yuval

    Yuval..u need to setup SA System in RPD..
    refer http://oraclebizint.wordpress.com/2008/04/25/oracle-bi-ee-101332-sa-system-subject-area-autoloading-profiles-and-bursting/

  • How to install plugin globaly (for all users) in Firefox13?

    How to install plugin globaly (for all users) in Firefox13?

    See also:
    *https://developer.mozilla.org/en/Gecko_Plugin_API_Reference/Plug-in_Development_Overview#Installing_Plug-ins

  • How to add prefix zero to all matnr fields in itab

    Hi,
      I ve a internal table with following fields
      Matnr                                                  bwkey                            
      6                                                        678                                 
      67                                                      rty     
      678                                                    78k                                
      How to add prefix zero to all tha matnr fields.
      like
    matnr                                     bwkey
    00000000000000006                678
    00000000000000067                rty
    00000000000000678                78k
    Thanks in advance

    Hi,
    commonly used conversion routine is ALPHA.
    It is conversion used to insert leading zero for document number.
    For example, in sales order (VBAK-VBELN length 10),
    when we key in order no, for example we key in '4302',
    conversion routine input will automatically add leading zero,
    so it will become '0000004302', this is real value stored in table VBAK.
    On conversion routine output, it will delete leading zero
    function CONVERSION_EXIT_ALPHA_INPUT, this will add leading zeros to a character based field of any length.
    Ex:
    data: lv_c(10) type c value '123'.
    call function 'CONVERSION_EXIT_ALPHA_INPUT'
              exporting
                      input = lv_c
              importing
                     output = lv_c.
    write:/ lv_c.
    Regards.

  • How to add tick marks to all sides of graph

    Hi,
    I'm trying to format a graph in numbers and would like to know how to add tick marks to all axies on the graph, ie. top, bottom, left & right.
    I can get tick marks on the bottom and left axis, but can't seem to find a way to add them to the others.\
    Thanks,
    Oscar

    Hi Oscar,
    Numbers 2.3, but this will work in Numbers 3.0.1 with different Inspector choices.
    When in doubt, cheat! This will give a second Y axis. It is a 2-Axis Chart (the bottom one in this screen shot of Chart Types):
    Column C (Value 2) has dummy values copied from Column B (Value 1).
    Now hide the Column graph by selecting it and changing the fill to None. (Inspector > Graphic > Fill > None).
    Set gridlines, tick marks, hide Legend as you wish.
    To add a second X axis at the top, Chart Inspector won't do that. Insert Shapes and Text Boxes?
    Regards,
    Ian.

  • How can we identify what are all user exits are there for sales orders,deli

    Dear All,
    How can we identify what are all user exits are there for sales orders,deliverys and invoices
    thanks
    nitchel v

    Hi Nitchel
    There are many ways to find out the user exits..
    For example for VA01.
    Goto Transaction ie VA01:
    goto System-- Status
    doubleclick on the program name ie SAPMV45A
    SE38 -> Enter the program name and in the program( SAPMV45A) goto -- attributes
    get the package name from here ie VA
    note the package(VA) and get back to main screen
    goto SMOD tcode  and click on find button in the package spec giv the package name ie VA and execute it
    you will find list of exits available
    check out the exit that suits ur requirement
    goto cmod and create a new project and implement in that user exit.
    You will get the following exits in SMOD..
    SDTRM001  Reschedule schedule lines without a new ATP check
    V45A0001  Determine alternative materials for product selection
    V45A0002  Predefine sold-to party in sales document
    V45A0003  Collector for customer function modulpool MV45A
    V45A0004  Copy packing proposal
    V45E0001  Update the purchase order from the sales order
    V45E0002  Data transfer in procurement elements (PRreq., assembly
    V45L0001  SD component supplier processing (customer enhancements
    V45P0001  SD customer function for cross-company code sales
    V45S0001  Update sales document from configuration
    V45S0003  MRP-relevance for incomplete configuration
    V45S0004  Effectivity type in sales order
    V45W0001  SD Service Management: Forward Contract Data to Item
    V46H0001  SD Customer functions for resource-related billing
    V60F0001  SD Billing plan (customer enhancement) diff. to billing
    For Delivery you will get .. here the package name will be VL.
    V02V0001  Sales area determination for stock transport order
    V02V0002  User exit for storage location determination
    V02V0003  User exit for gate + matl staging area determination (h
    V02V0004  User Exit for Staging Area Determination (Item)
    V50PSTAT  Delivery: Item Status Calculation
    V50Q0001  Delivery Monitor: User Exits for Filling Display Fields
    V50R0001  Collective processing for delivery creation
    V50R0002  Collective processing for delivery creation
    V50R0004  Calculation of Stock for POs for Shipping Due Date List
    V50S0001  User Exits for Delivery Processing
    V53C0001  Rough workload calculation in time per item
    V53C0002  W&S: RWE enhancement - shipping material type/time slot
    V53W0001  User exits for creating picking waves
    VMDE0001  Shipping Interface: Error Handling - Inbound IDoc
    VMDE0002  Shipping Interface: Message PICKSD (Picking, Outbound)
    VMDE0003  Shipping Interface: Message SDPICK (Picking, Inbound)
    VMDE0004  Shipping Interface: Message SDPACK (Packing, Inbound)
    For Billing VF01..Package is VF..
    SDVFX007  User exit: Billing plan during transfer to Accounting
    SDVFX008  User exit: Processing of transfer structures SD-FI
    SDVFX009  Billing doc. processing KIDONO (payment reference numbe
    SDVFX010  User exit item table for the customer lines
    SDVFX011  Userexit for the komkcv- and kompcv-structures
    V05I0001  User exits for billing index
    V05N0001  User Exits for Printing Billing Docs. using POR Procedu
    V60A0001  Customer functions in the billing document
    V60P0001  Data provision for additional fields for display in lis
    V61A0001  Customer enhancement: Pricing
    Or another way is ..
    - Get the program name for that T-Code
    - Go to that program
    - In that program, search for word 'EXIT' or 'CUSTOMER-FUNCTION' by using where-used list which will give u the list of user exits for that program
    And also you can check in the tables in SE16 for user exits..
    MODSAP - Stores SAP Enhancements
    MODSAPT - Stores SAP Enhancements - Short Texts
    MODACT - Stores Modifications
    And there are other ways as well , pls check the forum for this ,
    Regards,
    Vvieks
    Note : If you have any specific requirement then pls let us know , we will guide you

Maybe you are looking for