How to assign static ip address to the server having solaris 10. i.e. nge0

hi,
how to assign static ip address to the server having solaris 10. i.e. nge0 i.e. 192.168.3.125 ipshold be persistantt across reboots. what steps do i need to follow to put all information including gateway,netmask etc..Also i want to integrate one init script ..can i integrate it using /etc/init.d/<service name> like linux. and do chkconfig on it?i am not getting complex procedure of SPF and FMRI etc..can u help me?

Create a file in your /etc directory called hostname.nge0. Add the hostname of your system to this file. In your /etc/hosts file, assign the static IP address you want to the same hostname. You can then disable and enable the network-physical service to configure the network interface:
svcadm disable network-physical
svcadm enable network-physical

Similar Messages

  • How to Assign Static IP address to iPad?

    I have been having a problem with the wifi connection on my iPad. After much research online, I have narrowed it down to an ip address lease renewal bug. The iPad drops connection when the ip address lease expires. The suggested fix is to assign a static ip address for the iPad based on its MAC address.
    How can I do this?

    I can't answer directly, but the following may help (for HH3B)
    Login to HomeHub
    Goto http://192.168.1.254/html/settings/a_ip_address.html
    Set the lease time to 21 days
    Apply
    Goto http://192.168.1.254/html/settings/a_devices.html
    Click on your iPad
    Choose 'always use this IP address'
    Apply

  • How do I assign static ip address on time capsule

    I want to assign static ip addresses to certain devices in my home but not sure how to do it through the iMac and Air Port/time capsule

    Not sure as I don't own an Apple router but on mosdt modern routers there is a way to set, that is SET, a constant IP for devices by their MAC address, that is Mac, Media Access Control address not Mac computer.
    I would think Apple has included that feature in their Airport routers.

  • Assigning multiple IP address to the same Interface in rc.conf

    Hi,
    Is there any way to assign multiple IP address to the same Interface in rc.conf ?
    Or else how is it done?
    Thanks
    --Siju

    Like oh so many things, IP aliasing is covered in the wiki.
    Or you can just add the commands to /etc/rc.local if you need to do it some other way.

  • Assigning static port address

    Hello All,
    We are having a standalone BOE server. I have a doubt about assigning static port addresses to servers. We had a standard deployment of BusinessObjects 4.0 SP2. Our admin has assigned static request port address to APS, CMS, FRS, Crystal report servers and Dashboard server instead of using "Auto assign".
    Does it necessary to assign static port address to these servers and does it necessary to open these ports on firewall?
    What are the advantages of assigning static port address instead of using "Auto assign"?
    As per my understanding, request port of APS, FRS and other servers are used to communicate those with CMS. And CMS and all other servers are hosted on the same server. Then why do we need to open those ports on firewall in a server.
    Appreciate your help and suggestions.
    Thanks and Regards,
    Aashutosh

    Hi,
    if you dont have a Firewall in between your Client PCs and the BOE Server you dont need to assign static ports. You only need this if a Firewall is controlling the communication between these two parts.
    Most of the Services communicate only with the CMS - thats correct.
    But if you use the BI LaunchPad only for vieweing and creating Reports like WebI you need to open the Port 8080 for the Application Server.
    If you are using Front- End Clients for viewing and or editing Reports you need to open the CMS Port 6400 and assign a static Port to the IFRS and OFRS and open these ports too.
    Regards
    -Seb.

  • How to assign static ip to lightweight Access Point 1131AG before registering to controller

    Hi,
    I have Wireless LAN controller which is installed in corporate office , we have enabled H-reap so that remote office access point can be registered with corporate office controller.
    Now i have one AP at one of the remote site now i want to give static IP address to AP through console that too , before registering controller.
    I have got console with below name :
    ......MAC Address....>
    but if i type any command to assign IP address , it shows the error " Command Disabled "
    I have attached details for more calrification.
    As I know that I can connect this AP to corporate office LAN and get registered with WLC and then through WLC GUI , i can assign static IP address but i need solution to assign static IP before getting registered to WLC.
    I will be obliged if i get proper solution

    Hi Vinod,
    I have already posted the bug ID and i request you to perform the work around specified in that.. i mean.. here it is again..
    Ok... here is the BUG..CSCsy17745
    http://tools.cisco.com/Support/BugToolKit/search/getBugDetails.do?method=fetchBugDetails&bugId=CSCsy17745
    lemme know if this helps and answers you after performing the work around!!
    Don't forget to rate answers that you find useful
    Regards
    Surendra

  • How to assign a dynamic value to the value property of a button ?

    Hi Folks,
    I have a need, can i know how to assign a dynamic value to the value property of a button. Scenario is like follows...
    This is a struts based web application
    1. I have a file which consists of login user details (user name and his previlages) for a web application.
    2. I got those user details, into a List.
    3. When a user logged into the web app, in the home page there are few buttons. The type and number of buttons shown depends on the type of user/ user. (Buttons have different combination and the number of buttons available are not constant, they will vary from user to user).
    4. for each button, there will be a different action. I can pass the value of a button to an action class, but here button must have a dynamic value.
    Here is my test code:
    <%
    if (List != null)
    for (int i = 0; i <List.length; i++)
    %>
    <html:submit property="rduname" value= "<%=List%>" onclick="return submitRdu('<%=List[i] %>');"/>
    <%
    %>
    But my problem is how to assign a dynamic value to the value property of the button ( i know 'value= "<%=List[i]%>" ' will not work, just wanted show you guys).
    Thanks in advance,
    UV
    Edited by: UV_Dev on Oct 9, 2008 2:15 PM

    Let me try i know am not good at JSP but do we need double quotes here
    value= <%=List%>i think JSTL should help you about the dynamic thing                                                                                                                                                                                                                                                                                                                       

  • How to assign project specific task with the newly created projects ?

    Hi All,
    I need help. I need to assign project specific tasks (which i will be taking from staging table) other than the default task which are assigned during project creation. How do I proceed with this within same package. I am attaching the code of my package below...
    CREATE OR REPLACE PACKAGE body xxpa_proj_conv_pkg as
    PROCEDURE xxpa_create_project_proc(O_ERRBUF OUT VARCHAR2,O_RETCODE OUT VARCHAR2)
    is
    variables need to derive global parameters
    v_responsibility_id NUMBER; --- PA Supervisor responsibility id
    v_user_id NUMBER;
    deriving global parameters-
    -- Variables needed for API standard parameters
    v_api_version_number NUMBER := 1.0;
    v_commit VARCHAR2(1) := 'F';
    v_return_status VARCHAR2(1);
    v_init_msg_list VARCHAR2(1) := 'F';
    v_msg_count NUMBER;
    v_msg_index_out NUMBER;
    v_msg_data VARCHAR2(2000);
    v_data VARCHAR2(2000);
    v_workflow_started VARCHAR2(1) := 'Y';
    v_pm_product_code VARCHAR2(10);
    ---variables for catching errors---
    v_error_flag number:=0;
    -- Predefined Composite data types
    v_project_in PA_PROJECT_PUB.PROJECT_IN_REC_TYPE;
    v_project_out PA_PROJECT_PUB.PROJECT_OUT_REC_TYPE;
    v_key_members PA_PROJECT_PUB.PROJECT_ROLE_TBL_TYPE;
    v_class_categories PA_PROJECT_PUB.CLASS_CATEGORY_TBL_TYPE;
    v_tasks_in_rec PA_PROJECT_PUB.TASK_IN_REC_TYPE;
    v_tasks_in PA_PROJECT_PUB.TASK_IN_TBL_TYPE;
    v_tasks_out_rec PA_PROJECT_PUB.TASK_OUT_REC_TYPE;
    v_tasks_out PA_PROJECT_PUB.TASK_OUT_TBL_TYPE;
    v_CREATED_FROM_PROJECT_ID varchar2(20);
    v_CARRYING_OUT_ORGANIZATION_ID varchar2(20);
    v_person_id NUMBER;
    v_project_role_type VARCHAR2(20);
    API_ERROR EXCEPTION;
    v_a NUMBER;
    cursor for project in data
    CURSOR cur_project_in_data IS SELECT * FROM XXPA_PROJECT_IN_STG;
    cursor for task data
    CURSOR cur_task_in_data IS SELECT * FROM XXPA_TASK_IN_STG;
    ------------------------Cursors used for validations----------------------------------
    cursor for product code used for validation
    cursor cprc is select distinct PROJECT_RELATIONSHIP_CODE from PA_PROJECT_CUSTOMERS;
    cursor for distribution rule-
    cursor cdr is select DISTRIBUTION_RULE from PA_DISTRIBUTION_RULES;
    cursor for project status code
    cursor cpsc is SELECT PROJECT_STATUS_CODE, PROJECT_STATUS_NAME FROM PA_PROJECT_STATUSES WHERE STATUS_TYPE = 'PROJECT';
    cursor for template/created from project id
    cursor ccpid is select project_id from pa_projects where template_flag='Y';
    BEGIN
    select user_id, responsibility_id into v_user_id, v_responsibility_id
    from PA_USER_RESP_V
    where user_name like 'amit_kumar%'
    and responsibility_name like'PA SupervisorS';
    -- --Fnd_global.apps_initialize(user_id,resp_id, resp_appl_id);
    -- Fnd_global.apps_initialize(v_user_id,v_responsibility_id,275);
    -- -------calling global parameters---
    pa_interface_utils_pub.set_global_info
    p_api_version_number =>v_api_version_number,
    p_responsibility_id =>v_responsibility_id,
    p_user_id =>v_user_id,
    p_msg_count =>v_msg_count,
    p_msg_data =>v_msg_data,
    p_return_status =>v_return_status
    dbms_output.put_line ('Set Global status ->' || v_return_status);
    ----Cursor for PRODUCT RELATED DATA-----------
    FOR REC IN cur_project_in_data LOOP
    -----PASSING VALUES TO THE COMPOSITE DATA TYPE(PROJECT_IN_REC_TYPE)-------
    ----retrieving product code-----
    select lookup_code into v_pm_product_code
    from pa_lookups
    where lookup_type = 'PM_PRODUCT_CODE'
    and meaning = 'Oracle Project Manufacturing';
    -----retrieving and validating created from project id----
    BEGIN
    select project_id
    into v_CREATED_FROM_PROJECT_ID
    from pa_projects_all
    where name=rec.created_from_project_name;
    EXCEPTION
    when others then
    O_Retcode := '1';
    O_Errbuf :='Incorrent CREATED_FROM_PROJECT_NAME';
    Fnd_File.Put_Line (Fnd_File.LOG, O_Errbuf);
    UPDATE XXPA.XXPA_PROJECT_IN_STG
    SET ERROR_FLAG ='1' ,last_updation_date='sysdate' where created_from_project_name = rec.CREATED_FROM_PROJECT_NAME;
    END;
    -----retrieving & validating carrying out organization id-----
    BEGIN
    select distinct(CARRYING_OUT_ORGANIZATION_ID)
    into v_CARRYING_OUT_ORGANIZATION_ID
    from pa_projects_prm_v
    where CARRYING_OUT_ORGANIZATION_NAME=rec.carrying_out_organization_name;
    EXCEPTION
    when others then
    O_Retcode := '1';
    O_Errbuf :='Incorrent Carrying Out Organization name';
    Fnd_File.Put_Line (Fnd_File.LOG, O_Errbuf);
    UPDATE XXPA.XXPA_PROJECT_IN_STG
    SET ERROR_FLAG ='1' ,last_updation_date='sysdate' where carrying_out_organization_name = rec.carrying_out_organization_name;
    END ;
    v_project_in.pm_project_reference := rec.segment1;
    v_project_in.project_name := rec.PROJECT_NAME;
    v_project_in.created_from_project_id := v_CREATED_FROM_PROJECT_ID;
    v_project_in.carrying_out_organization_id := v_CARRYING_OUT_ORGANIZATION_ID;
    v_project_in.project_status_code := rec.PROJECT_STATUS_CODE;
    v_project_in.description := rec.PROJECT_DESCRIPTION;
    v_project_in.start_date := rec.PROJECT_START_DATE;
    v_project_in.completion_date := rec.PROJECT_COMPLETION_DATE;
    v_project_in.distribution_rule := rec.DISTRIBUTION_RULE;
    v_project_in.project_relationship_code := rec.PROJECT_RELATIONSHIP_CODE;
    -------------------------Validation of incoming project data--------------------------------
    v_error_flag := 1;
    project relationship code validation
    BEGIN
    for prc in cprc
    loop
    if (rec.PROJECT_RELATIONSHIP_CODE=prc.PROJECT_RELATIONSHIP_CODE) or (rec.PROJECT_RELATIONSHIP_CODE is null)--can be overridden from template
    then
    v_error_flag :=0;
    else null;
    end if;
    end loop;
    END;
    project distribution rule validation
    BEGIN
    for dr in cdr
    loop
    if (rec.DISTRIBUTION_RULE=dr.DISTRIBUTION_RULE) or (rec.DISTRIBUTION_RULE is null) null since the value can be taken from template too
    then
    v_error_flag :=0;
    else null;
    end if;
    end loop;
    END;
    project status code validation
    BEGIN
    for sc in cpsc
    loop
    if (rec.PROJECT_STATUS_CODE=sc.PROJECT_STATUS_CODE) or (rec.PROJECT_STATUS_CODE is null) null since the value can be taken from template too
    then
    v_error_flag :=0;
    else null;
    end if;
    end loop;
    END;
    dbms_output.put_line ('Error at PROJECT_STATUS_CODE>' ||v_error_flag);
    validation logic for project start date
    BEGIN
    if TRUNC(rec.PROJECT_START_DATE) >= TRUNC(rec.PROJECT_COMPLETION_DATE)
    THEN
    v_error_flag := 1;
    O_Retcode := '1';
    O_Errbuf :='Project start date cannnot be greater than completion date';
    Fnd_File.Put_Line (Fnd_File.LOG, O_Errbuf);
    END IF;
    END;
    validation logic for project completion date
    BEGIN
    if (TRUNC(rec.PROJECT_COMPLETION_DATE)<=TRUNC(rec.PROJECT_START_DATE))
    then
    if ( rec.PROJECT_STATUS_CODE='CLOSED' and rec.PROJECT_COMPLETION_DATE>sysdate)
    THEN
    v_error_flag := 1;
    O_Retcode := '1';
    O_Errbuf :='completion date cannot be greater than sysdate for closed projects';
    Fnd_File.Put_Line (Fnd_File.LOG, O_Errbuf);
    END IF;
    v_error_flag := 1;
    O_Retcode := '1';
    O_Errbuf :='Project closed date cannot be less than start date';
    end if;
    END;
    --------Update staging table for the error records--------
    BEGIN
    if v_error_flag =1
    then
    O_Retcode := '1';
    O_Errbuf :='Incorrect project relationship code';
    Fnd_File.Put_Line (Fnd_File.LOG, O_Errbuf);
    UPDATE XXPA.XXPA_PROJECT_IN_STG
    SET ERROR_FLAG ='1' ,last_updation_date='sysdate' where PROJECT_RELATIONSHIP_CODE = rec.PROJECT_RELATIONSHIP_CODE;
    end if;
    END;
    -----------------------End of validation of incoming project data----------------------------------
    ---------------Project Task DATA-----------------
    v_a:=0;
    FOR tsk IN cur_task_in_data LOOP
    v_tasks_in_rec.pm_task_reference :=tsk.task_reference ;
    v_tasks_in_rec.task_name :=tsk.task_name;
    v_tasks_in_rec.pm_parent_task_reference :=tsk.parent_task_reference ;
    v_tasks_in_rec.task_start_date :=tsk.task_start_date ;
    v_tasks_in_rec.task_completion_date :=tsk.task_completion_date ;
    v_tasks_in(v_a) := v_tasks_in_rec;
    v_a:=v_a+1;
    end loop;
    ---------------end of task details------------------
    --INIT_CREATE_PROJECT
    pa_project_pub.init_project;
    ---------------------CREATE_PROJECT--------------------------
    pa_project_pub.create_project(
    p_api_version_number=> v_api_version_number,
    p_commit => v_commit,
    p_init_msg_list => v_init_msg_list,
    p_msg_count => v_msg_count,
    p_msg_data => v_msg_data,
    p_return_status => v_return_status,
    p_workflow_started => v_workflow_started,
    p_pm_product_code => v_pm_product_code,
    p_project_in => v_project_in,
    p_project_out => v_project_out,
    p_key_members => v_key_members,
    p_class_categories => v_class_categories,
    p_tasks_in => v_tasks_in,
    p_tasks_out => v_tasks_out);
    if v_return_status = 'S'
    then
    UPDATE XXPA.XXPA_PROJECT_IN_STG
    SET INTERFACE_STATUS ='Success' where segment1 = v_project_out.pa_project_number; ---P->pending & S-> Success
    dbms_output.put_line('New Project Id: ' || v_project_out.pa_project_id);
    dbms_output.put_line('New Project Number: ' || v_project_out.pa_project_number);
    else
    UPDATE XXPA.XXPA_PROJECT_IN_STG
    SET INTERFACE_STATUS ='Pending' where segment1 = v_project_out.pa_project_number;
    raise API_ERROR;
    end if;
    END LOOP;
    Commit;
    ------Handling Exception--------
    EXCEPTION
    WHEN api_error THEN
    dbms_output.put_line('An error occured during project creation');
    IF (v_msg_count > 0 ) THEN
    FOR i IN 1..v_msg_count LOOP
    apps.PA_INTERFACE_UTILS_PUB.get_messages(
    p_msg_count => v_msg_count,
    p_encoded => 'F',
    p_msg_index => i,
    p_msg_data => v_msg_data,
    p_data => v_data,
    p_msg_index_out => v_msg_index_out);
    dbms_output.put_line('Error message v_data ->'||v_data);
    dbms_output.put_line('Error message v_msg_data ->'||v_msg_data);
    dbms_output.put_line('Error message v_msg_index_out ->'||v_msg_index_out);
    dbms_output.put_line('Error message p_msg_index ->'||i);
    APPS.fnd_file.put_line(APPS.FND_FILE.LOG,v_data);
    END LOOP;
    END IF;
    WHEN OTHERS THEN
    dbms_output.put_line('An error occured during conversion, SQLCODE ->'|| SQLERRM);
    IF (v_msg_count >=1 ) THEN
    FOR i IN 1..v_msg_count LOOP
    PA_INTERFACE_UTILS_PUB.get_messages(
    p_msg_count => v_msg_count,
    p_msg_index => i,
    p_encoded => 'F',
    p_msg_data => v_msg_data,
    p_data => v_data,
    p_msg_index_out => v_msg_index_out);
    dbms_output.put_line('Error message ->'||v_data);
    APPS.fnd_file.put_line(APPS.FND_FILE.LOG,v_data);
    END LOOP;
    END IF;
    end; --end procedure
    END xxpa_proj_conv_pkg;
    * Please tell me how to assign project specific task with the newly created projects??? *
    Also please tell me how to assign multiple * Project_Relationship_Code * (ex: END CLIENT, GENERAL CONTRACTOR, PRIMARY) for a particular project during project creation?

    Are you not storing the project number in the staging table designed for storing the task data? You can use create_project API to create the project and tasks at the same time with one single call. You may want to try that option

  • How to assign a pricing type to the pricing procedure ?

    Business Scenario : When the prices change from the time the order is taken to the time the invoice is created, how can setup the system to  handle the changes automatically ? 
    I would like to know How to create a pricing type and How to assign a pricing type to the pricing procedure so that I can use the 'new pricing document' function in the sales document and 'Update prices' on the condition screens in the Billing document.
    Thanks for your input in advance.
    Oscar

    Hi !! Oscar,
    1) For pricing type definition you would require the help of a developer.
    2) However, most of the commonly occuring requirements are supplied with  standard SAP.
    You can assign a pricing type to pricing procedure as follows:-
    IMG>S & D >Basic Functions>Pricing>Pricing Control>Define & Assign pricing procedures>Maintain pricing procedure> Here, locate your pricing procedure , in the fourth coloumn using the drop down list, you can assign a pricing type to the pricing procedure.
    Now you can use the 'new pricing document' function in the sales document and 'Update prices' on the condition screens in the Billing document !
    Regards,
    PATHIK
    Message was edited by:
            Pathik Pandya

  • How to setup default gateway in a DHCP client. The default gateway will be the Ip address of the server that has RRAS installed, hence routing cabalities.

    How to setup default gateway in a DHCP client. The default gateway will be the Ip address of the server that has RRAS installed, hence routing cabalities.

    Hi Bill,
    Thank you for replying back...Yes, I was actually asking how do you set the default gateway address on the DHCP server?,
    I believe I got the answer below:
    To configure the DHCP default gateway option Click Start, point to Administrative Tools and then click DHCP. In the console tree, expand the applicable DHCP server, expand IPv4, and then right-click Scope Options Click Configure Options, check 003
    Router, type the applicable Server name and IP address, and then click OK.
    Thank you

  • How to retrieve ip address of the server running PAM inside its module?

    Hello all,
    I've configured Solaris 8 with a deal of ip aliases on the network interface.
    Also I've a handwritten PAM module to auth users. It have some specific functionality which is needed for me.
    For the moment, this module need to be updated. This update requires a knowledge of IP address the user connecting to.
    Is it possible to determine IP address (alias IP) of the machine inside PAM module the user connecting to?
    Thank you for your answers.
    Mikhail.

    > Can i access the ip address of the DB server through SQL or PL/SQL code?
    No. It is the wrong place to look.
    Reason: a sever can, and often has, multiple IP addresses.
    So when you run SQL or PL/SQL code (or a Java stored proc), that will likely report the 1st IP address of the server - and you could have connected via another IP address of that server.
    The actual socket call to get the hostname returns an array of IP addresses. So which one is the correct one? How do you know whether or not your client session connected to the 1st IP in this array?
    The correct place to look is at the socket handle for that Oracle session on the client. And determine to what IP address that socket is connected to.
    This is not that easy - I do not think that the OCI exposes the socket handle it creates. But you can use kernel calls to get a list of established TCP sessions and to what IP address they're connected to. The netstat command on Windows and Unix/Linux is an example of how this can be done.

  • How to determine the address of the server whence the application through W

    The application is loaded from the server taking place in Intranet networks. How to determine from this application the address of the server with which it it is loaded?
    KSV

    Use could use the javax.jnlp BasicService.getCodeBase(). See http://java.sun.com/j2se/1.5.0/docs/guide/javaws/developersguide/examples.html and http://java.sun.com/j2se/1.5.0/docs/guide/javaws/jnlp/javax/jnlp/BasicService.html

  • How do I get the hostname(or address) of the server?

    How do I get the hostname(or address) of the server inside code
    running on the server? I can use
    Admin.getServer().getListenPort() to get the port number; but
    calling Admin.getServer().getListenAddress() returns null.
    Thanks
    Rajesh

    Rajesh,
    Try this:
    import java.net.InetAddress;
    Address.getHostName(); // This returns a string with hostname
    "Rajesh Kommu" <[email protected]> wrote:
    >
    How do I get the hostname(or address) of the server inside code
    running on the server? I can use
    Admin.getServer().getListenPort() to get the port number; but
    calling Admin.getServer().getListenAddress() returns null.
    Thanks
    Rajesh

  • Using a iPad.  How do you delete unwanted address from the drop down list.  I typed in a wrong address once, and now it keeps showing up.

    Using a iPad.  How do you delete unwanted address from the mail drop down list.  I typed in a wrong address once, and now it keeps showing up.

    Winfax1-
    Look in your Contacts App and see if the unwanted address is entered there.  If it is, you can delete it there.
    Fred

  • How to assign single responsibity to all the applications user?

    how to assign single responsibity to all the applications user?
    Thanks in advance

    Use FND_USER_PKG.AddResp
    How to use FND_USER_PKG.AddResp
    Re: How to use FND_USER_PKG.AddResp
    single responsibility to all users
    Re: single responsibility to all users

Maybe you are looking for

  • CVD 1 % Higher education cess

    Dear all, We are having a problem in import purchase where in the 1% Higher education cess on CVD does not default during MIGO. As a result of which the system loads it on to the material during MIGO. Have done the following settings maintained in pr

  • Approval work flow.

    Hi expert's            could any body tell How to create approval work flow? I am working on CRM marketing planner where I need to use this work flow when( user-1 Head of marketing) select status as approved it should go for (user-2 Branch manager) t

  • Re: My printer is not printing attachments.

    GraceRg wrote: My c510 is not printing attachments. When a fax arrives, the cover prints but not the fax image. When emails arrive with attachments, the message prints but the attachment does not. Any suggestions? My printer will print e-mails but do

  • Export part of a clip

    Can you export just part of your timeline in FCPX, like in FCS, I can mark and in and out point on my timeline and just export that part.. Can FCPX do that?

  • ISetup Configuration Question

    Hi Mugunthan Are iSetup configuration setups User specific. I did Instance Mapping, Create Extracts & Reports using my Apps Login I again login with different Login-id, i navigate to Oracle isetup, i dont see Instance mapping, extracts & reports. Can