Nice solution to change a lot of procedures at once.

if you have to do little changes in a lot of your Procedures / Functions or Packages here is a nice solution to do this in a very short time:
CREATE TABLE T_SOURCE
SOURCE_ID NUMBER,
NAME VARCHAR2(30 BYTE),
SOURCETEXT CLOB
CREATE OR REPLACE PROCEDURE CIAS_PUFFER.pr_t_source
IS
NAME: pr_t_source
$Archive: //PVCS/archives/10gh/PR_T_SOURCE.prc_v $
$Author: ext0523 $
$Date: Aug 04 2008 17:26:54 $
$Revision: 1.2 $
CURSOR c_all_obj
IS
SELECT object_name
FROM all_objects
WHERE owner <>'SYS'
AND object_type = 'PROCEDURE'
ORDER BY object_name;
CURSOR c_prog (cp_name VARCHAR2)
IS
SELECT *
FROM all_source
WHERE NAME = cp_name
ORDER BY line;
v_replace VARCHAR2 (999);
v_st CLOB;
i PLS_INTEGER := 0;
BEGIN
EXECUTE IMMEDIATE ('truncate table t_source');
FOR rec_all_obj IN c_all_obj
LOOP
i := i + 1;
v_st := '--$ARCHIVE$'||chr(10)||'--$AUTHOR$'||chr(10)||'--$DATE$'
||chr(10)||'--$REVISION$'||chr(10)||chr(10);
v_st := v_st||'CREATE OR REPLACE ';
FOR rec_prog IN c_prog (rec_all_obj.object_name)
LOOP
v_replace := UPPER (rec_prog.text);
if instr(v_replace,'$ARCHIVE') >0 then v_replace :=''; end if;
if instr(v_replace,'$AUTHOR') >0 then v_replace :=''; end if;
if instr(v_replace,'$DATE') >0 then v_replace :=''; end if;
if instr(v_replace,'$REVISION') >0 then v_replace :=''; end if;
v_replace :=
REPLACE (v_replace,
'[email protected]',
'prot_easy_cias'
v_replace :=
REPLACE (v_replace, '[email protected]', 'easy2cias');
v_st := v_st || v_replace;
END LOOP;
INSERT INTO t_source
VALUES (i, rec_all_obj.object_name, v_st);
END LOOP;
COMMIT;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
WHEN OTHERS
THEN
-- Consider logging the error and then re-raise
RAISE;
END pr_t_source;
// classpath= /ORACLE/u01/app/oracle/product/10.2.0.3/jdbc/lib/ojdbc14.jar
// Java SQL classes
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
// Oracle JDBC driver class
import oracle.jdbc.OracleDriver;
// Java IO classes
import java.io.IOException;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
//Java Util classes
import java.util.Properties;
* This class demonstrates the Oracle JDBC 10g enhanced features for inserting
* and retrieving CLOB data from the database. Using the new features, large
* data of more than 32765 bytes can be inserted into the database using the
* existing PreparedStatement.setString() and PreparedStatement.getString()
* methods.
public class ClobMan {
/* Database Connection object */
private Connection conn = null;
/* Variables to hold database details */
private String url = null;
private String user = null;
private String password = null;
// Create a property object to hold the username, password and
// the new property SetBigStringTryClob.
private Properties props = new Properties();
/* String to hold file name */
private String fileName = null;
* Default Constructor to instantiate and get a handle to class methods
* and variables.
public ClobMan(String fileName) {
this.fileName = fileName;
* Main runnable class.
public static void main(String[] args) throws SQLException {
// Instantiate the main class.
ClobMan clobMan = new ClobMan(args[0]);
// Load the Oracle JDBC driver class.
DriverManager.registerDriver(new OracleDriver());
// Load the database details into the variables.
String dbUrl = "jdbc:oracle:thin:@pmol:1550:dbpmol";
clobMan.url = dbUrl;
clobMan.user = "gh10";
clobMan.password = "secret";
// Populate the property object to hold the username, password and
// the new property 'SetBigStringTryClob' which is set to true. Setting
// this property allows inserting of large data using the existing
// setString() method, to a CLOB column in the database.
clobMan.props.put("user", clobMan.user );
clobMan.props.put("password", clobMan.password);
clobMan.props.put("SetBigStringTryClob", "true");
// Check if the table 'CLOB_TAB' is present in the database.
//clobMan.checkTables();
// Call the methods to insert and select CLOB from the database.
//clobMan.insertClob();
clobMan.selectClob();
* This method will insert the data into a CLOB column in the database.
* Oracle JDBC 10g has enhanced the existing PreparedStatement.setString()
* method for setting the data more than 32765 bytes. So, using setString(),
* it is now easy to insert CLOB data into the database directly.
private void insertClob() throws SQLException {
// Create a PreparedStatement object.
PreparedStatement pstmt = null;
try {
// Create the database connection, if it is closed.
if ((conn==null)||conn.isClosed()){
// Connect to the database.
conn = DriverManager.getConnection( this.url, this.props );
// Create SQL query to insert data into the CLOB column in the database.
String sql = "INSERT INTO clob_tab VALUES(?)";
// Read a big file(larger than 32765 bytes)
String str = this.readFile();
// Create the OraclePreparedStatement object
pstmt = conn.prepareStatement(sql);
// Use the same setString() method which is enhanced to insert
// the CLOB data. The string data is automatically transformed into a
// clob and inserted into the database column. Make sure that the
// Connection property - 'SetBigStringTryClob' is set to true for
// the insert to happen.
pstmt.setString(1,str);
// Execute the PreparedStatement
pstmt.executeUpdate();
} catch (SQLException sqlex) {
// Catch Exceptions and display messages accordingly.
System.out.println("SQLException while connecting and inserting into " +
"the database table: " + sqlex.toString());
} catch (Exception ex) {
System.out.println("Exception while connecting and inserting into the" +
" database table: " + ex.toString());
} finally {
// Close the Statement and the connection objects.
if (pstmt!=null) pstmt.close();
if (conn!=null) conn.close();
* This method reads the CLOB data from the database by using getString()
* method.
private void selectClob() throws SQLException {
// Create a PreparedStatement object
PreparedStatement pstmt = null;
// Create a ResultSet to hold the records retrieved.
ResultSet rset = null;
try {
// Create the database connection, if it is closed.
if ((conn==null)||conn.isClosed()){
// Connect to the database.
conn = DriverManager.getConnection( this.url, this.props );
// Create SQL query statement to retrieve records having CLOB data from
// the database.
String sqlCall = "SELECT rownum, name, sourcetext FROM t_source";
pstmt= conn.prepareStatement(sqlCall);
// Execute the PrepareStatement
rset = pstmt.executeQuery();
String rownum = null;
String o_name =null;
String clobVal = null;
// Get the CLOB value from the resultset
//java.io.BufferedWriter out = new java.io.BufferedWriter(new java.io.FileWriter("pr_all.sql"));
while (rset.next()) {
rownum = rset.getString(1);
     o_name = rset.getString(2);
     clobVal = rset.getString(3);
System.out.println(" length: "+clobVal.length()+" "+o_name+" "+rownum);
     java.io.BufferedWriter out =
     new java.io.BufferedWriter(new java.io.FileWriter(o_name+".prc"));
     out.write(clobVal);
     out.newLine();
     out.write("/");
     out.newLine();
     out.newLine();
out.flush();
out.close();
} catch (SQLException sqlex) {
// Catch Exceptions and display messages accordingly.
System.out.println("SQLException while connecting and querying the " +
"database table: " + sqlex.toString());
} catch (Exception ex) {
System.out.println("Exception while connecting and querying the " +
"database table: " + ex.toString());
} finally {
// Close the resultset, statement and the connection objects.
if (rset !=null) rset.close();
if (pstmt!=null) pstmt.close();
if (conn!=null) conn.close();
* Method to check if the table ('CLOB_TAB') exists in the database; if not
* then it is created.
* Table Name: CLOB_TAB
* Column Name Type
* col_col CLOB
private void checkTables() {
Statement stmt = null;
ResultSet rset = null;
try {
// Create the database connection, if it is closed.
if ((conn==null)||conn.isClosed()){
// Connect to the database.
conn = DriverManager.getConnection( this.url, this.props );
// Create Statement object
stmt = conn.createStatement();
// Check if the table is present
rset = stmt.executeQuery(" SELECT table_name FROM user_tables "+
" WHERE table_name = 'CLOB_TAB' ");
// If the table is not present, then create the table.
if (!rset.next()) {
// Table does not exist, create it
stmt.executeUpdate(" CREATE TABLE clob_tab(clob_col CLOB)");
} catch (SQLException sqlEx) {
System.out.println("Could not create table clob_tab : "
+sqlEx.toString());
} finally {
try {
if( rset != null ) rset.close();
if( stmt != null ) stmt.close();
if (conn!=null) conn.close();
} catch(SQLException ex) {
System.out.println("Could not close objects in checkTables method : "
+ex.toString());
* This method reads the specified text file and, returns the content
* as a string.
private String readFile()
throws FileNotFoundException, IOException{
// Read the file whose content has to be passed as String
BufferedReader br = new BufferedReader(new FileReader(fileName));
String nextLine = "";
StringBuffer sb = new StringBuffer();
while ((nextLine = br.readLine()) != null) {
sb.append(nextLine);
// Convert the content into to a string
String clobData = sb.toString();
// Return the data.
return clobData;
sqlplus -s @pr_all.sql;

Is there a better way to satisfy such claim?I have to say I would not consider doing this in the database. Source control would allow you to manage (review / commit, not to mention revert) the results of such a potentially dangerours global search and replace.
Such as if it UPPERcased all my source code for example.
v_replace := UPPER (rec_prog.text);

Similar Messages

  • Looking for a nice solution for different cases with nearly same operations

    Hi everybody:
    I'm looking for a nice solution for the following problem:
    I'm measuring different data at the same time (with different devices).
    I would like to save these data all in one array (or cluster?), but I
    don't know exactly the way to do this. All values have corresponding
    time values. So for one data type it would result in a 2d array,
    wouldn't it? But how can I save different data types with their time
    values in one array? Or should I take a cluster? And how can I get only
    a certain type of data out of this array or cluster again? E.g. if I
    only need data type "3" with its time stamps for evaluation? I would
    really appreciate an example, I work with LV 7. Thanks!
    Then - for evaluation - I only need one data type of these different
    data. Which one I would like to choose via the frontpanel (it changes
    from test to test). So, I thought of a case structure (where I can
    choose which data type and correspondingly which evaluation way). The
    evaluation steps for the different data types are quite the same, but
    can vary in order of execution. I could write for every case the
    (nearly) same evaluation steps, but this would take a lot of time, plus
    if I need to change one step I need to change it in every case.
    Does anybody know a better way?
    Thank you very much in advance,
    Steffi

    steffi.kono wrote:
    In this example I have four arrays, which I would like to save alltogether in one file. First column should consists of time stamps, second column of value type 1, third column of value type 2, ... How can I solve this?
    Built the 4 1D arrays into a 2D array, the use write to spreadsheet file.
    steffi.kono wrote:
    And, after that, how can I display only the second coulmn (e.g.) and time stamps in a waveform chart from this file? Or how can I say in LabVIEW: "display the last 30 values of column three over the time in a waveform chart"?
    There is "array subset", which allows you to get any desired subset from an array. If yoyu want entire rows or colums, use "index array".
    To display the last 30 values in a chart, just feed the data to a chart with the history size set to 30 elements. The rest will fall into place.
    LabVIEW Champion . Do more with less code and in less time .

  • New lot-sizing procedure (similar FX fixed order quantity)

    Dear All,
    I have to create a new lot sizing procedure for MRP run. This new procedure should be similar to FX - the material should be included in MRP run when the stock falls below reorder point - but the quantity ordered (proposed to be ordered in PReq) should be the fixed lot size no matter which is the difference between the reorder point and the stock.
    To clarify the request: the reorder point is 70, the stock level is 15 and the fixed lot size is 25. The MRP run should create 1 PReq for 25. (The standard functionality of FX lot sizing creates 3 PReq for 25 pieces each one - because the needed quantity is 55.)
    If there is no standard customization to be done, I think I should do some changes in the needed quantity (set the quantity 25 instead of 55) - but I need yours advice also about the best way to do this. Maybe you may indicate an exit/BADI or a place where I can do an enhancement to achieve this.
    I now it is not the best request - but I have to do it, unfortunately .
    Regards,
    Florina R.

    Hi Tomasz,
    1) The reorder point is 70 (greater than the needed quantity for a week) because the vendor has some delivery problems and also because this quantity covers the delivery lead time.
    2) The lot size is fixed because they do not want to order more than the needed quantity for a week even if the difference between the reorder point and the stock level is greater than 25.
    I'm able to fix the lot size but not to limit the quantity at this value (25).
    I have to do this because they will provide the needed quantity (if the stock falls to 0) from another vendor (but the tricky thing and wrong also is the fact that for the second vendor I have a second material....).
    It is hard for me to convince you that the request is correct because I know in this way SAP will work incorrectly - but the client knows the consequences and even so wants this kind of lot sizing procedure...
    Regards,
    Florina R.

  • Help on Planning Calender and lot size procedure settings

    Hi Gurus,
    We have 2 different schedule at the moment for our PO Placing to our supplier :
    1. Planning Calendar D01 --> For Seafreight shipment, PO Placing on bi-weekly basis, every Monday and RDD (Request Delivery Date) is on Thursday (11 days after PO Placing)
    2. Planning Calendar D02 --> For Airfreight shipment, PO Placing on weekly basis, every Friday and RDD (Request Delivery Date) is on Wednesday (5 days after PO Placing)
    Now we have required to change the SEAFREIGHT process by having the PO Placing on weekly basis, every Monday and RDD (Request Delivery Date) is on Wednesday (9 days after PO Placing).
    Please let me know the step by step procedure to create a new Planning Calendar and Lot Size Procedure to accomodate this requirement?
    Thanks for your help.
    Regards
    Brijesh

    Dear Brijesh:
    1. I think you are planning to change the Planning calendare D01.
    2. For this go to MD26- GIVE THE plant / palnning calendar id.
    3. Then in the CAlc rule for spec peroid - change the day from wednesday to Monday.
    4. SAve this and generate periods.
    5. Now in the maeterial master- check if you have the lot size as PK and also planning calendar as d01.
    6. In the planned dleiveyr times you enter 9 days.
    Kindly check this and revert back.
    Reg
    Dsk

  • Change schema runtime in procedure

    Hello friends,
    I have one query in procedure. I have same table with same structure and name in more than 10 schema. I want to access these table records dynamically using procedure.
    I want to change schema name in procedure.
    Please check below PL/SQL code i have wrote.
    declare
         cursor c1 IS
         select deptno,dname,loc from &schema..dept;
    begin
         for rec in c1
         loop
              dbms_output.put_line(rec.deptno || ' ' || rec.dname || ' ' || rec.loc);
         end loop;
    end;
    I want same functionality using procedure. Please check procedure code below:
    create or replace procedure diff_schema (schema_name IN varchar2)
    Declare
         cursor c1 IS
         select deptno,dname,loc from schema_name.dept;
    AS
    begin
         for rec in c1
         loop
              dbms_output.put_line(rec.deptno || ' ' || rec.dname || ' ' || rec.loc);
         end loop;
    end;
    but it returns error.
    Please help me to solve this issue.
    Pradip Patel

    BluShadow wrote:
    Venkadesh wrote:
    Agree..
    Hope this work.
    create or replace procedure r_test (p_schema in varchar2)
    is
    v_rc sys_refcursor;
    v_all emp%rowtype;
    begin
    open v_rc for 'select * from '||p_schema||'.emp';
    loop
    fetch v_rc into v_all;
    exit when v_rc%notfound;
    dbms_output.put_line(v_all.ename);
    end loop;
    close v_rc;
    end;
    That still assumes that the emp table exists in the schema in which the procedure is compiled because you have:
    v_all emp%rowtype;Essentially what the OP is asking for indicates that whereve the procedure is defined is going to need to know the structure of the tables it's going to use otherwise everything about it would need to be dynamic.
    We have a process on one of our databases that has a similar setup, where there are several schema's all containing the same table structure, but different data, and we need a central setup of code that can process each of those as required.
    For us we looked at it from a different perspective. Rather than having the central procedure try and access all the other schemas, for which it would need to know which schemas it has to access etc. and because sometimes some of those schemas should be excluded from the process if they have had an issue with their data being populated (it's a regular job to repopulate them and determine changes on them etc. - a bit of an ETL task really), we leave it up to the individual schemas to determine when the processing is necessary (i.e. when they each know their own data is ready to be processed). The advantage of that is that the central procedure's those schemas use all use the AUTHID CURRENT_USER, so the central schema just has a blank copy of the tables so the code can compile, but when the other schemas call the procedure, they are running the code against their own tables because of the AUTHID setting. It avoids any dynamic coding, or any (mis/ab)use of ref cursors, and it gives the flexibility that each schema is in control of it's own destiny, and other schemas can be added or removed as necessary without having to have some central control mechanism to know which schemas need processing.Thank you Blu,i'm learning lot of things from you...you are a champion

  • MRP Lot-Sizing Procedures PK

    Hi experts,
    When we use lot-sizing procedures PK, I have a problem about it.
    Can you please kindly help me.
    The problem is.
    When we run MRP and get the release date as past date in purchase requisition.
    I would not like system to propose release date as past date.
    Do we need more configuration for using lot-sizing procedures PK ?
    The settings are mentioned as below.
    * material master
    - Lot size in MRP1 view : PK
    - MRP Type in MRP1 view : PD
    - Procurement type in MRP2 view : F
    * MRP parameters
    - Processing key : NETCH
    - Create purchase req. : 1 (Purchase requisitions)
    - Delivery schedules : 3 (Schedule lines)
    - Create MRP list : 1 (MRP list)
    - Planning mode : 1 (Adapt planning data (normal mode))
    - Scheduling : 2 (Lead Time Scheduling and Capacity Planning)

    please read below for the detail explanation of the  release date.
    please check the example part of below.
    wish it help.
    tks.
    Purchase Requisition Release Date
    Specifies the date on which the purchase order
    should be initiated on the basis of the purchase
    requisition.
    The release date is based on:
    The
         purchasing department processing time defined for the plant
    The
         planned delivery time from the material
         master record or purchasing
         info record
    The
         delivery date
    The
         goods receipt processing time from the material master record
    Note
    The planned delivery time from the
    purchasing info record and the GR processing time are only taken into account
    if the purchase requisition was generated via materials
    planning.
    Example
    Processing time Planned del. GR processing
    Purchasing time time
    |----------|---------------------|--------|
    Release PO Delivery Date
    date date date required
    Date required: 01.10.2007
    GR processing time: 2 days (working days)
    Planned delivery time: 10 days (calendar days)
    Purchasing dept processing time: 2 days (working days)
    For the material to be available on the
    date it is needed, the purchase requisition must be released on 13.09.2007
    (requirement date less GR processing time, planned delivery time, and
    purchasing department processing time).

  • Re: Changing Inspection lot origin from 08 to 05 for movement type 322 and 349

    Reference discussion:  Changing Inspection lot origin from 08 to 05 for movement type 322 and 349
    With reference to the above discussion and your explanation for user EXIT QAAAT0001, it was stated that:
    If you only have two inspection types, you can mark one as preferred.  Then with exit use logic that if MM = 311 use preferred inspection type, if 911 use, non-preferred inspection type.
    May I ask what are you refer to for MM? It seems like movement type to me, however, I can't find movement type field in the structure within the component of EXIT_SAPLQAAT_002.  Appreciate if you could shed some light on this.
    Best Regards,
    CY
    Branched from older discussion by moderator.  When there are questions concerning an older discussion, please create a new discussion with reference to the older one.  Thanks! 

    Yes.. you are correct.  But with the info that is provided by EXIT_SAPLQAAT_002, you should be able to identify the proper material document in table MSEG which will have the material movement. 
    You can use the values of plant, batch, material number, Purchase order number, Order number, item number, storage location as well as the current date since the exit would normally be executed on the same date the material movement was done.  You'd also probably only execute the logic if QKZ is "X".
    Craig

  • Multiple PR's being created even though the Lot Sizing procedure is WB.

    The issue is system is creating more than one PR every week even though the lot sizing procedure is WB. The MRP type of the material is P3 and planning time fence is 21 days. The PR's created have the date of every week's Monday. There's also a quota arrangement for the material having two vendors, so two PR's both having different vendors are ok but system is creating multiple PR's for same vendor on same date.
    Do let me know if anything else you want to know to understand this issue.
    We want system to create only one PR per week for a vendor.
    Thanks,
    Rakesh.

    Hi,
    First thing theres a lot size WB
    What is the qty of the PR have u maintianined any min lot sice or max lot size.
    Coming to quota arrangement how did u maintained it
    For eg
    You might have maintained for a vendor 1 maximum qty as 100 and u have raised a request for 200 so it is raising two prs
    Check u r quota arrangement once
    Reagrds
    sravanthi

  • Lot size procedure & MRP

    Dear All,
    What is Lot size procedure and how it will affect during MRP run?
    Please provide some example against explanation.

    Suppose,
    Avaialble Stock= 50
    PIR 150 on 25/06 
    PIR 60 on 27/06
    When you run MRP,
                                 Avaialble stock
    PIR 150 on 25/06       100
    Planned ordre 100       0
    PIR 60 on 27/06         60
    Planned order  60        0
    For 1st PIR, The NEt requirement is 50-150=-100, So planned order for 100 is created.
    For 2 nd PIR, the ner requirement is 50-150-60+100= -60, planned order for 60 is created.
    In toto, net requirement = Stock-total requiremens+ Total receipts
    Regards
    Ratan
    Edited by: Ratan on Jun 24, 2009 11:31 AM

  • Now that Apple no longer supports AppleWorks, how can I change a lot of AppleWorks files to Pages, without doing them one at at time?

    Now that Apple no longer supports AppleWorks, how can I change a lot of AppleWorks files to Pages, without doing them one at at time?

    Maybe these?
    https://discussions.apple.com/thread/3162022?start=0&tstart=0
    http://macscripter.net/viewtopic.php?id=19987
    But why if you're running 10.6 do you need to do this? AW works fine in 10.6 with Rosetta.
    (BTW,  you're in the older iMac PPC forum.)

  • Lot sizing procedure

    Hello
    Why it is said that "Periodic lot sizing procedure is suitable for forecast based planning"?
    Also please tell what is use of Subsequent settlement indicator in vendor master record?
    Thanks & Regards
    P.S.P

    Hi
    Sub seq settlement Indicates that conditions providing for subsequent settlement may apply to this vendor.
    Set this indicator if subsequent (end-of-period) settlement can be agreed with this vendor.
    Vijay

  • TS2446 I forgot the security question about what was my first car and what is my favorite car! What is the solution to change that? please help me, thank you in advance Leo

    I forgot the security question about what was my first car and what is my favorite car! What is the solution to change that? please help me, thank you in advance Leo

    If you have a rescue email address set up on your account then you can try going to https://appleid.apple.com/ and click 'Manage your Apple ID' on the right-hand side of that page and log into your account. Then click on 'Password and Security' on the left-hand side of that page and on the right-hand side you might see an option to send security question reset info to your rescue email address.
    If you don't have a rescue email address set up then go to Express Lane  and select 'iTunes' from the list of 'products' in the middle of the screen.
    Then select 'iTunes Store', and on the next screen select 'Account Management'
    Next choose 'iTunes Store Account Questions' or 'iTunes Store account security' (it appears to vary by country) and fill in that you'd like your security questions/answers reset.
    You should get an email reply within about 24 hours (and check your Spam folder as well as your Inbox)

  • Handling Solution Manager changes with ChaRM (ChaRM on SolMan PRD)

    Hi Experts,
    Having deployed ChaRM to satellite system (three system landscape) we became interested in handling Solution Manager changes with ChaRM. We have operable ChaRM in SolMan 4.0 SP12.
    We have DEV and PRD for SolMan so we are talking about two system landscape.
    Has anyone of you done this? Does it go the same way as if SolMan was a real satellite system (rfc's=>tms=>ibase=>organization=>project=>MC=>CRs = order of configurations roughly).
    I tried searching specific instructions for this deployment but it seems that configuration guides etc focus on satellite system handling. Our need is basically to document and control SolMan changes and with ChaRM we could.
    Perhaps there is no magic to this and everything goes just like in satellite, but I would appreciate any experiences others may have had doing this.
    Kind regards,
    Auli

    Hello,
    We have implemented this with two systems landscape where in we have in place a Solution Manager Dev system and Solution manager Production system both are SOLMAN 4.0 with SP12. So the path for us to move the changes is from Development Systems to Production system.
    We have ChaRM between the Dev and production. We reapplied the satellite system concept. For us the Solution manager Prod is a satellite systems all the changes that we move from Development system to Production systems is tracked with necessary documentation in the ChaRM process.
    Yes, I agree with you that this is not any big magic. Working with two SOLMAN implementation, I strongly feel that SAP needs to have well rounded ChaRm processes. We have robust Change Management Process, but when we moved to ChaRM we were limited functionality of the ChaRM processes.
    I had approached and did some research on how other companies are implementing the same process. Most of them have almost the same process for tracking SOLMAN changes. I am still look out for improved process to manage SOLMA changes.
    Hope this helps!!! Thanks
    Vish

  • Passing a Parameter to the Procedure and changing it in the Procedure

    Hi all,
    I am trying to pass a parameter to a procedure like this.
    PROCEDURE FLASH_PHY
    (date_begin IN DATE, date_end IN DATE)
    IS
    I am trying to do SELECT and INSERT based on the date range passed in the procedure as mentioned above. And I am trying to do something like this.
    SELECT NVL(sum(charges),0),count(summary_balances_id)
    INTO lnu_charges_6months,c_summary
    FROM SUMMARY_BALANCES
    WHERE period_begin BETWEEN ADD_MONTHS((date_begin), -6) -- AND ADD_MONTHS((date_end), -1);
    UPDATE summary_balances
    SET cummulative_charges_6mo = lnu_charges_6months;
    how should I do this parameter change. Right now if I use this select statement than it does not return anything as the parameter is passed on the procedure level. I am under the impression that when you pass a parameter to the procedure like this you can't change it into the procedure.
    PLEASE GUIDE. Thanks a bunch. I really appreciate it.

    From what I understand your variables that are passed into the
    procedure can be manipulated as local variable to the procedure.
    Here is my interpretation of what your attempting to do:
    create or replace procedure A (x in number) IS
    yes varchar2(3) := 'No';
    begin
    dbms_output.put_line('Start value for yes:'||yes);
    select 'yes' into yes from dual where x+1 = 2;
    dbms_output.put_line('End value for yes:'||yes);
    end;
    Call the procedure called "A" passing in a "1".
    EG:
    BEGIN
    A(1);
    END;
    Does this answer your question?
    ,Russ

  • Tried the posted solution for the RETR problem and it works once then it returns. How do you make the change permanent?

    Tried the posted solution for the RETR problem and it works once then it returns. Once the email dl'ds the file deleted per the instructions returns. How do you make the change permanent?

    Hi DOC808HI
    # I don't know what you mean by "posted RETR solution". Could you please post a link to the suggested solution? Perhaps you are referring to this thread: https://support.mozilla.org/en-US/questions/991792 ?
    # Anyhow any further troubleshooting information you can provide will be great e.g. Your Operating System Version (XP, 7, Mac OS X Mavericks), your anti-virus if any, your mail provider, your ISP, what you did, what happened with exact error message, what happened
    Cheers!
    ...Roland

Maybe you are looking for

  • Limitation on source group with services using ip address range

    Hello, I have an interface on CSS which I regard as public and another interface I regard as private. On the private interface is a server farm with private ip addresses. Since the server admin guys insisted the servers need to access internet just f

  • Multiple custom login pages

    I have two WebApps. In central admin i set one different custom login page for each. now the problem: the second WebApp redirects to the login page of the first one. Known problem?

  • AUM(Expense/revenue from stock transfer) Transaction key getting hit @ time of 641

    Hi I have done STO for Finished good, price maintained both the plant is 100, & excise is 12.36 %, but at time of PGI, In receiving plant Excise Amount is posted to AUM. I have referred below example. AUM is triggered if the material in supplying pla

  • Install officejet 4500 g510g-m

    im trying to install the office jet 4500 all in one to my computer please help to install This question was solved. View Solution.

  • RE:idoc inbound scenario "mapping issue"

    Hi experts, we r facing the problem in idoc inbound scenario, while to generate multiple idoc's. we need to generate the idoc's based on two fields, Location_code and Date. If any of the field is changing we need to generate the new idoc. below is th