Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

  • add() provides a netid, nodename, other arguments to create a node
  • delete() provide a nodename, tell NetAdmin to delete the record
  • getBilling() provide a netid, receive whether or not PTAEO required
  • getNodeList() provide a netid, receive a list containing zero or more nodename(s) that are associated with that netid
  • getNodeDetails() provide a nodename, receive the details for that nodename
  • update() provide a nodename, provide arguments to change on the node

Table of Contents

WSDL details

Kazi has provided a WSDL conforming to the SPEC defined here: 

add()

Arguments for add:
netid of owner
nodename (needs to be unique, and NOT exist already in the system)
client category (DS,MW,WS). This field is called "Policy Group" on the netAdmin API.

charge code (charge_cd which comes back in a response to getBilling())
Client OS (Windows, Mac, Unix)
interval (backup time, or never)
PTAEO, passed as five separate strings

Note

  We need charge_cd as one of the input arguments. - Added, db692
Should default server be used to create this CB node, client domain to default server mapping? - Jim Owen says "two defaults. There is a default for servers and a default for workstations (managed or not managed). Should be a default in netadmin that can be changed."
Can it be fastTrack account? ---no.

Existing Oracle API:
FUNCTION createCBAccount createCBAccountViaSN (a_netid        IN VARCHAR2,
                            a_node_name    IN VARCHAR2,
                            a_policy_group IN VARCHAR2,
                            a_time_slot    IN VARCHAR2,
                            a_os           IN VARCHAR2,
                            a_charge_cd    IN NUMBER,
                            a_project      IN VARCHAR2,
                            a_task         IN VARCHAR2,
                            a_award        IN VARCHAR2,
                            a_org          IN VARCHAR2,
       a_fast_track   IN VARCHAR2)

This function will create a CB node on the default server.

Add method needs to return an error code indicating whether or not the add request was accepted, and for errors should indicate the problem with the data.

PTAEO details

PTAEO consists of five strings:

  1. project
  2. task
  3. award
  4. expenditure
  5. organization

Note that it's superfluous for us to pass around the Expenditure code. The E code is consistent for all Central Campus Backup items, thus the value will always be '832170'. We could drop this value from being passed, but for future flexibility we should leave it in the API.

Interval, possible values:

Interval is coded as a string. These values are shown to the user:

...

We will encode these for passing back and forth as zero-padded, military time, first four characters of the string to the api:

...

Returns

0 success

-1 duplicate entry. Request already made or account already exists.

-2 invalid netid

-3  invalid chargecode

-4 account / node already exists

-5 nodename has space (no spaces allowed)

-6 server invalid

-7 create pin error

-13 account exists but is locked

-99 netid is not linked

-n database error occurred

Add method needs to return an error code indicating whether or not the add request was accepted, and for errors should indicate the problem with the data.

What is a policy_group? A policy group is the same thing as a Client Category: DS,MW,WS

PTAEO details

PTAEO consists of five strings:

  1. project
  2. task
  3. award
  4. expenditure
  5. organization

Note that it's superfluous for us to pass around the Expenditure code. The E code is consistent for all Central Campus Backup items, thus the value will always be '832170'. We could drop this value from being passed, but for future flexibility we should leave it in the API.

Interval, possible values:

Interval is coded as a string. These values are shown to the user:

None – I will backup manually
12:00AM – 12:29AM
12:30AM – 12:59AM
1:00AM – 1:29AM
1:30AM – 1:59AM
2:00AM – 2:29AM
2:30AM – 2:59AM
3:00AM – 3:29AM
3:30AM – 3:59AM
4:00AM – 4:29AM
4:30AM – 4:59AM
5:00AM – 5:29AM
5:30AM – 5:59AM
6:00AM – 6:29AM
6:30AM – 6:59AM
7:00AM – 7:29AM
7:30AM – 7:59AM
8:00AM – 8:29AM
8:30AM – 8:59AM
9:00AM – 9:29AM
9:30AM – 9:59AM
10:00AM – 10:29AM
10:30AM – 10:59AM
11:00AM – 11:29AM
11:30AM – 11:59AM
12:00PM - 12:29PM
12:30PM - 1:00PM
1:30PM - 1:59PM
2:00PM - 2:29PM
2:30PM - 2:59PM
3:00PM - 3:29PM
3:30PM - 3:59PM
4:00PM - 4:29PM
4:30PM - 4:59PM
5:00PM - 5:29PM
5:30PM - 5:59PM
6:00PM - 6:29PM
6:30PM - 6:59PM

7:30PM - 7:59PM
8:00PM - 8:29PM
8:30PM - 8:59PM
9:00PM - 9:29PM
9:30PM - 9:59PM
10:00PM - 10:29PM
10:30PM - 10:59PM
11:00PM - 11:29PM
11:30PM - 11:59PM 

We will encode these for passing back and forth as zero-padded, military time, first four characters of the string to the api:

NONE
INCR0000
INCR0030
INCR0100
INCR0130
INCR0200
INCR0230
INCR0300
INCR0330
INCR0400
INCR0430
INCR0500
INCR0530
INCR0600
INCR0630
INCR0700
INCR0730
INCR0800
INCR0830
INCR0900
INCR0930
INCR1000
INCR1030
INCR1100
INCR1130
INCR1200
INCR1230
INCR1300
INCR1330
INCR1400
INCR1430
INCR1500
INCR1530
INCR1600
INCR1630

...

Arguments for delete:
nodename (needs to be unique, and exist)
datestamp for date to delete, formatted as Oracle date (31-JAN-2013). This is awkward for ServiceNow, but native for NetBill. Furthermore, ServiceNow already has a method that formats months in this way for previous Oracle interactions.

Note

Existing Oracle New ServiceNow API: FUNCTION expireCBAccount expireCBAccountViaSN (a_node_name    IN VARCHAR2,   a_expire_date  IN DATEVARCHAR2)New ServiceNow API: FUNCTION expireCBAccountViaSN (a_node_name    IN VARCHAR2,   a_expire_date  IN DATE)  RETURN NUMBER  RETURN NUMBER

 

a_expire_date input expected format:MM/DD/YYYY

0 success

-10 cb node does not exist

-n database error occurred

Info

You must pass in an Oracle date.  No time component.  WebMethods must convert whatever input is received from ServiceNow.  4 digit year is STRONGLY recommended. - rng3

...

Note

We have a view for this. ViewName:smart.YUSTART_CB_DETAILS_V

select node_name from smart.yustart_cb_details_v where owning_netid=?      This returns all nodes one owner netid owns. To filter node list by status,

select node_name from smart.yustart_cb_details_v where owning_netid=? and status_cd=? status_cd can be 'A'-Active, 'RA'-Request Active,'RL'-Request Lock (still active),'L'-Locked(inactive),'RD'-Request Delete (inactive),'D'-Deleted

Note


Need to We only want to query active nodes, so we will set status_cd='A'
We only want back a list of nodenames. 

Note

Need to know the exact flags to set. We want only Active nodes, owned by the netid. What is the flag we should set for status_cd? 'A'.


Info

If you want a list of active nodes, use "status_cd in ('A', 'RL').

For the purposes of later calling the update() and delete() method we will want to do a getNodeList against just the 'A' status_cd nodes.

RL is locked, and you cannot make a change on it. 

RA has not been created yet, so you can't perform any action on it.

L, RD and D are already closed, so you can't take further action on them.

...

getNodeDetails method needs to return an error code indicating whether or not the getNodeDetails request was accepted. If no error, also needs to return:

  • returns:
    return code with possible error message that node does not exist
    nodename (needs to be unique, and EXIST already in the system)
    client category (DS,MW,WS)
    Client OS (Windows, Mac, Unix)
    interval (backup time, or never)
    PTAEO, passed as five separate strings

 

...

Existing oracle API:

...

error, also needs to return:

  • returns:
    return code with possible error message that node does not exist
    nodename (needs to be unique, and EXIST already in the system)
    client category (DS,MW,WS)
    Client OS (Windows, Mac, Unix)
    interval (backup time, or never)
    PTAEO, passed as five separate strings

 

Note

Existing oracle API:

PROCEDURE getCBDetail (a_node_name      IN VARCHAR2,
         a_parent_netid    OUT VARCHAR2,
       a_owning_netid     OUT VARCHAR2,
       a_status_cd        OUT VARCHAR2,
       a_policy_group_cd    OUT VARCHAR2,
       a_policy_group_desc     OUT VARCHAR2,
       a_time_slot_cd     OUT VARCHAR2,
       a_time_slot_desc       OUT VARCHAR2,
       a_early_late_option     OUT VARCHAR2,
       a_os_cd         OUT VARCHAR2,
       a_os_desc      OUT VARCHAR2,
       a_usage       OUT NUMBER,
       a_agreement_cd        OUT NUMBER,
       a_agreement_desc       OUT VARCHAR2,
       a_debit_project       OUT VARCHAR2,
       a_debit_task        OUT VARCHAR2,
       a_owningdebit_netid  award     OUT VARCHAR2,
       a_statusdebit_cd  org        OUT VARCHAR2,
       a_policy_group_cd  requested_date       OUT VARCHAR2DATE,
       a_policy_group_desc     OUT VARCHAR2created_date     OUT DATE,
       a_timerequested_slotend_cd     date    OUT VARCHAR2DATE,
       a_time_slot_desc       OUT VARCHAR2end_date      OUT DATE,
       a_earlyrequested_latedelete_option     date OUT VARCHAR2DATE,
       a_os_cd         OUT VARCHAR2delete_date     OUT DATE,
       a_os_desc      OUT VARCHAR2last_verified_date    OUT DATE,
       a_usage       OUT NUMBER,
       a_agreement_cd        OUT NUMBER,
       a_agreement_desc     pin       OUT VARCHAR2);


NEW METHOD

PROCEDURE getCBNodeDetailViaSN (a_node_name      IN VARCHAR2,
                a_policy_group_cd    OUT VARCHAR2,
       a_time_debitslot_project  cd       OUT VARCHAR2,
       a_debitos_task      cd         OUT VARCHAR2,
       a_debit_award  project       OUT VARCHAR2,
       a_debit_org  task        OUT VARCHAR2,
       a_requesteddebit_date  award       OUT DATEVARCHAR2,
       a_created_date     OUT DATE,
       a_requested_end_date    OUT DATE,
       a_end_date      OUT DATE,
       a_requested_delete_date OUT DATE,
       a_delete_date     OUT DATE,
       a_last_verified_date    OUT DATE,
       a_pin       OUT VARCHAR2);

update()

Arguments for update:
charge_code (gathered from a previous call to getSrvcChargeInfo() )
nodename (needs to be unique, and already exist)

client category (DS,MW,WS)
Client OS (Windows, Mac, Unix)
interval (backup time, or never)
PTAEO, passed as five separate strings

 

Note

We need charge_cd as one of the input arguments, we don't netid as input argument.

Existing oracle API:

FUNCTION updateCBAccount debit_org        OUT VARCHAR2,
);

RETURNS number

0 success

-2 nodename is invalid 

update()

Arguments for update:
charge_code (gathered from a previous call to getSrvcChargeInfo() )
nodename (needs to be unique, and already exist)

client category (DS,MW,WS)
Client OS (Windows, Mac, Unix)
interval (backup time, or never)
PTAEO, passed as five separate strings

 

Note

We need charge_cd as one of the input arguments, we don't netid as input argument.

Existing oracle API:

FUNCTION updateCBAccount (a_node_name    IN VARCHAR2,
                            a_charge_cd    IN NUMBER,
                            a_project      IN VARCHAR2,
                            a_task         IN VARCHAR2,
                            a_award        IN VARCHAR2,
                            a_org          IN VARCHAR2,
       a_msg          OUT VARCHAR2)

new:

FUNCTION updateCBAccountViaSN (a_node_name    IN VARCHAR2,
                            a_charge_cd    IN NUMBER,
                            a_project      IN VARCHAR2,
                            a_task         IN VARCHAR2,
                            a_award        IN VARCHAR2,
                            a_org          IN VARCHAR2,
       a_msg          OUT VARCHAR2)) 
RETURN number

0 success

-3 charge code invalid

-5 nodename has space

-10 nodename is invalid

-n database error occurred 

update method needs to return an error code indicating whether or not the add request was accepted, and for errors should indicate the problem with the data.

...