# system.kanoa.cmms.updateProcedure(procedureInfo, userId)

Updates an existing procedure's core details, including its name, category assignment, and enabled status. Call this function when a procedure needs to be renamed, re-categorized, or enabled/disabled, passing the `procedureId` of the record to update along with the `userId` performing the change for audit purposes. 
Unlike `updateProcedureField`, this function updates the full set of required fields at once, so every key in `procedureInfo` is required unless otherwise stated.

---
### Parameters
**procedureInfo** `Dictionary`<br />
<table class='dictionaryKeyTable'>
	<tbody>
 	<tr><td> - enabled</td><td>Boolean</td><td>Not required. Will be set to True</td></tr>	
 	<tr><td> - procedureCategoryId</td><td>Integer</td><td></td></tr>	
 	<tr><td> - procedureDescription</td><td>String</td><td>Not required</td></tr>	
 	<tr><td> - procedureId</td><td>Integer</td><td>Id of procedure</td></tr>	
 	<tr><td> - procedureName</td><td>String</td><td>Name of procedure</td></tr>	
	</tbody>
</table>

**userId** `Integer`:Id of the user executing the function<br />

---
### Returns
**# of records modified** `Integer`<br />
**message** `String` None if success<br />

---
### Example
```python
userId = system.kanoa.security.getIDPUserId({'userName': 'SYSTEM'})
procedureInfo = {
                    'procedureId: 34,
                    'enabled': False, 
                    'procedureCategoryId': None, 
                    'procedureName': 'CNC Lube', 
                    'procedureDescription': 'CNC Coolant and Lubrication Service'
                }
retVal, msg = system.kanoa.cmms.updateProcedure(procedureInfo, userId)
print retVal, msg 
```
