以下のような進め方を アジャイル開発 と呼ぶ。
- 関係者は目的の達成のためにお互いに協力し合いながら進める
- 一度にまとめてではなく少しずつ作り、早い段階から実際に動作するものを届けて評価を繰り返す
- 利用者の反応や関係者からフィードバックを継続的に得ながら、作っているもの自体や計画を調整する
2001 年に アジャイルソフトウェア開発宣言 を示したのが始まり。
以下のような進め方を アジャイル開発 と呼ぶ。
2001 年に アジャイルソフトウェア開発宣言 を示したのが始まり。
import boto3 | |
import os | |
import json | |
DESTINATION_PHONE_NUMBER = os.getenv('DESTINATION_PHONE_NUMBER') | |
SOURCE_PHONE_NUMBER = os.getenv('SOURCE_PHONE_NUMBER') | |
INSTANCE_ID = os.getenv('INSTANCE_ID') | |
CONTACT_FLOW_ID = os.getenv('CONTACT_FLOW_ID') | |
connect = boto3.client('connect') |
var methodsAndProperties = []; | |
var testObj = new GlideFilter('a=b', 'rule'); //TODO: replace this with whatever object you want to test | |
getMethodsAndProperties(methodsAndProperties, testObj); | |
gs.print('\n' + methodsAndProperties.join('\n')); | |
/** | |
* Populates an extant array in-place, of methods and properties of a given object. | |
* @param methodsAndProperties {array} - the array to populate/modify in-place. |
/***CLASSES***/ | |
class APIClass { | |
/** | |
* An APIClass object | |
* @param name {string} The name of the API class | |
*/ | |
constructor(name, classDesc = '') { | |
this._className = name; | |
this._classDescription = classDesc; | |
/** |
var DynamicRefQuals= Class.create(); | |
DynamicRefQuals.prototype = Object.extendsObject(AbstractAjaxProcessor, { | |
//Client-callable | |
/* | |
To quickly and easily create a dynamic reference qualifier script, simply add a custom method to this Script Include. | |
Here are the guidelines for modifying this Script Include: | |
1. In the "@author" JSDoc tag of the method your implement, please put your user ID (For example: "twoodruff"). | |
2. See how the getGroupMembersByID and getGroupMembersByName methods are documented, and try to document your method in the same fashion. | |
3. Unless you've got permission from the author, please do not modify anyone else's methods. |
/** | |
* Does the work on each loop. | |
* @param {Number} [limit=10] - The number of records to process per loop. | |
* @param {Number} [currentNumber=0] - The number of records that have been processed so far, by all previous loops. | |
*/ | |
function eventWrapper(limit, currentNumber) { | |
var EVENT_NAME = 'EVENT.NAME.HERE'; //todo: Update this to the name of the event you've created. | |
var TABLE_NAME = 'TABLE_NAME_HERE'; //todo: Update this to the name of the table containing the records you're processing | |
var QUERY = 'some_query=here'; //todo: Put your query here |
var tableName = 'incident'; | |
var recordID = '755d52b137b0b30090b68cf6c3990e6f'; | |
gs.print(getAttachmentContentsAsString(tableName, recordID)); | |
function getAttachmentContentsAsString(tableName, recordID) { | |
//Declare a new instance of GlideSysAttachment. | |
var gsa = new GlideSysAttachment(); | |
//Get the raw bytes in the file | |
var bytesInFile = gsa.getBytes(tableName, recordID); | |
//Convert that jive into a string using Java/Rhino. |
var tableName = 'incident'; | |
var sysIDOfRecord = '755d52b137b0b30090b68cf6c3990e6f'; | |
var fileNameSansExtension = 'example text doc'; //Full file name: example text doc.txt | |
var grRecordWithAttachment = new GlideRecord(tableName); | |
grRecordWithAttachment.get(sysIDOfRecord); | |
var gsa = new GlideSysAttachment(); | |
//ONLY works in global | |
var textVal = gsa.get(grRecordWithAttachment, fileNameSansExtension); |
copySpecificAttachment(donorTable, donorID, recipientTable, recipientID, fileName); | |
function copySpecificAttachment(donorTable, donorID, recipientTable, recipientID, fileName) { | |
var donorAttSysID; | |
var newAttRecord; | |
var linkToNewRecord; | |
var attDataRecord; | |
var newDocRecord; | |
var attRecord = new GlideRecord('sys_attachment'); | |
attRecord.addQuery('table_name', donorTable); |
var recordTable = 'incident'; | |
var idOfRecord = '755d52b137b0b30090b68cf6c3990e6f'; | |
var grAttachment = getAttachmentRecord(recordTable, idOfRecord, 'example text doc.txt', true); | |
var gsaTextFile = new GlideSysAttachment(); | |
var strContents = gsaTextFile.getContent(grAttachment); //ONLY worked in non-global scope | |
gs.info(strContents); | |
/** |