WIP 投料报 Invalid Serial Number
DELETE FROM MTL_SERIAL_NUMBERS_TEMP
WHERE
TRANSACTION_TEMP_ID = :b1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 0 0.00 0.00 0 0 0 0
Execute 2 0.00 0.00 0 4 0 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.00 0.00 0 4 0 0
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 173
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 2 0.00 0.00
SQL*Net message from client 2 0.00 0.00
********************************************************************************
SQL ID: 9mq64qp6s994x Plan Hash: 0
INSERT INTO MTL_SERIAL_NUMBERS_TEMP ( TRANSACTION_TEMP_ID , LAST_UPDATE_DATE ,
LAST_UPDATED_BY , CREATION_DATE , CREATED_BY , LAST_UPDATE_LOGIN ,
REQUEST_ID , PROGRAM_APPLICATION_ID , PROGRAM_ID , PROGRAM_UPDATE_DATE ,
VENDOR_SERIAL_NUMBER , VENDOR_LOT_NUMBER , FM_SERIAL_NUMBER ,
TO_SERIAL_NUMBER , SERIAL_PREFIX , ERROR_CODE , GROUP_HEADER_ID ,
PARENT_SERIAL_NUMBER , PRODUCT_TRANSACTION_ID , PRODUCT_CODE ,
PARENT_OBJECT_ID , PARENT_OBJECT_TYPE , PARENT_OBJECT_ID2 ,
PARENT_OBJECT_TYPE2 )
VALUES
( :b1 , :b2 , :b3 , :b4 , :b5 , :b6 , :b7 , :b8 , :b9 , :b10 , :b11 , :b12 ,
:b13 , :b14 , :b15 , :b16 , :b17 , :b18 , :b19 , :b20 , :b21 , :b22 , :b23 ,
:b24 )
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 0 0.00 0.00 0 0 0 0
Execute 2 0.02 0.02 0 0 10 2
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.02 0.02 0 0 10 2
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 173
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 2 0.00 0.00
SQL*Net message from client 2 0.00 0.01
SQL*Net more data from client 2 0.00 0.00
********************************************************************************
Log file descriptor
Log ON state
:= '_' ;
:= NULL ;
FND_GLOBAL.CONC_REQUEST_ID;
;
3559334 fix. Variable not used in code, but resulting in
calls to fnd api.
number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
Since the forms-server and MWA server recycles database connections
we need to always check for debug profiles values and see if they
are different from the values with which it was initialized earlier. If
different then reinitialize the debug variables
long l2, long l3)
throws InvTrxException
{
int j1 = getGroupId(i, j);
int k1 = l;
Object obj = null;
int i2 = -1;
if(TrxUtil.isTraceEnabled)
{
TrxUtil.log("Came here inside of validate serial status", 1);
TrxUtil.log("SrcTypeId = " + i + ",ActId=" + j + ",SerCtrl+" + k + ",CurStatus=" + l + ",TrxGroup=" + j1 + " ,LstTxnSrcTypId=" + l1 + ",xfrSerCtrl=" + i1 + ",mOrigWipEntId=" + l2 + ",TrxSrcId=" + l3);
}
switch(j1)
{
default:
break;
case 1: // '\001'
if(flag)
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("validate_status:SO_RMA_GROUP. isIssue true");
if(k == 2 || k == 3 || k == 5)
{
if(i == 8 && j == 21)
{
if(l == 3)
{
if(i1 == 1)
k1 = 4;
else
k1 = 5;
} else
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status for Int. Order Intransit ship1 :" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in SO_RMA_GROUP");
}
} else
if(l == 3)
{
if(i == 8 && j == 3 && i1 == 6)
k1 = 1;
else
k1 = 4;
} else
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status in RMA_GRP/Issue1 :" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in SO_RMA_GROUP");
}
} else
if(k == 6)
if(i == 8 && j == 21)
{
if(l == 1 || l == 3 || l == 6)
{
if(i1 == 1)
k1 = 4;
else
k1 = 5;
} else
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status for Int. Order Intransit ship2 :" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in RMA_GRP");
}
} else
if(l == 1 || l == 3)
{
if(i == 8 && j == 3 && i1 == 6)
k1 = 1;
else
k1 = 4;
} else
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status in RMA_GRP/Issue2 :" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in RMA_GRP");
}
break;
}
if(TrxUtil.isTraceEnabled)
TrxUtil.log("validate_status:SO_RMA_GROUP. isIssue false");
if(k == 2 || k == 3)
{
if(l == 1 || l == 4)
{
k1 = 3;
break;
}
if((i == 12 || i == 7) && (l == 5 || l == 7))
{
k1 = 3;
break;
}
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status in RMA_GRP/Rcpt :" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in RMA_GRP");
}
if(k == 5)
{
if(l == 1 || l == 4)
{
k1 = 3;
break;
}
if((i == 12 || i == 7) && (l == 5 || l == 7))
{
k1 = 3;
break;
}
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status in RMA_GRP/Rcpt2 :" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in RMA_GRP");
}
if(k != 6)
break;
if(l1 == 12L && l == 1 && TrxUtil.restrictRcptSerial)
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status in RMA_GRP- Trying to receive the SerialNumber that is already received thro RMA :" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in RMA_GRP");
}
if((i == 7 || j == 12) && (l == 5 || l == 7))
{
k1 = 1;
break;
}
if(l == 1 || l == 4 || l == 5 || l == 7)
{
k1 = 1;
break;
}
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status in RMA_GRP/Rcpt3 :" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in RMA_GRP");
case 2: // '\002'
if(TrxUtil.isTraceEnabled)
TrxUtil.log("validate_status:SUB_XFER_GROUP:Came here inside", 1);
if(k != 2 && k != 3 && k != 5)
break;
if(flag && l == 3)
{
k1 = 4;
if(TrxUtil.isTraceEnabled)
TrxUtil.log("validatestaus CurStatus=" + l, 1);
if(TrxUtil.isTraceEnabled)
TrxUtil.log("validatestaus Newstatus= " + k1, 1);
break;
}
if(!flag && (l == 4 || l == 3))
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("validatestaus CurStatus=" + l, 1);
k1 = 3;
break;
}
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status in SUBXFER_GRP :" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in SuvXfer_Grp");
case 3: // '\003'
if(flag)
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("validate_status:INTRANS_GROUP. isIssue true");
if(k != 2 && k != 3 && k != 5)
break;
if(l == 3)
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("-----> Inside isIssue of INTRANS_GROUP");
if(i1 == 1)
k1 = 4;
else
k1 = 5;
break;
}
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status in INTRAN group: curstat=" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in INTRAN ");
}
if(TrxUtil.isTraceEnabled)
TrxUtil.log("validate_status:INTRANS_GROUP. isIssue false");
if(k == 2 || k == 3)
{
if(l == 1 || l == 4 || l == 5 || l == 7)
{
k1 = 3;
break;
}
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status in INTRAN Group:", 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in INTRAN ");
}
if(k == 5)
{
if(l == 1 || l == 4 || l == 5 || l == 7)
{
k1 = 3;
break;
}
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status in INTRAN Group:", 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in INTRAN ");
}
if(k != 6)
break;
if((l == 5 || l == 7) && (i == 7 || j == 12))
{
k1 = 1;
break;
}
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status in INTRAN Group:", 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in INTRAN ");
case 4: // '\004'
if(TrxUtil.isTraceEnabled)
TrxUtil.log("validate_status:PACKUNPACK_GROUP.");
if(flag && l == 3)
{
k1 = 4;
break;
}
if(!flag && (l == 4 || l == 3))
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("validatestaus CurStatus=" + l, 1);
k1 = 3;
break;
}
if(l == 3 || l == 5 && l1 == 5L)
break;
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status in PACKUNPACK_GROUP :" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in PACKUNPACK_GROUP ");
case 6: // '\006'
if(flag)
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("validate_status:LOT_TRX_GROUP. isIssue true");
if(j == 40 || j == 41)
{
if(l != 3)
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status in LOT_TRX_GROUP :" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in LOT_TRX_GROUP ");
}
k1 = 3;
break;
}
if(j != 42)
break;
if(TrxUtil.isTraceEnabled)
TrxUtil.log("CASE LOT_TRX_GROUP:Issue:TA_LOTTRANS");
if(l != 3)
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status in LOT_TRX_GROUP for lot trans :" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in LOT_TRX_GROUP ");
}
if(TrxUtil.isTraceEnabled)
TrxUtil.log("CASE LOT_TRX_GROUP:Issue:TA_LOTTRANS: newStatus SN_NOTUSED");
k1 = 1;
break;
}
if(TrxUtil.isTraceEnabled)
TrxUtil.log("validate_status:LOT_TRX_GROUP. isIssue false");
if(j == 40 || j == 41)
{
if(l != 3)
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status in LOT_TRX_GROUP :" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in LOT_TRX_GROUP ");
}
k1 = 3;
break;
}
if(j != 42)
break;
if(TrxUtil.isTraceEnabled)
TrxUtil.log("CASE LOT_TRX_GROUP:!Issue:TA_LOTTRANS:CurSTatus=> " + l);
if(l == 1 || l == 6 || l == 3)
{
k1 = 3;
break;
}
if(l != 4)
break;
if(TrxUtil.restrictRcptSerial)
{
if(TrxUtil.isTraceEnabled)
{
TrxUtil.log("CASE LOT_TRX_GROUP:Receipt of Issued Out Serials Not allowed :CurSTatus=> " + l);
TrxUtil.log("Invalid status due to RESTRICT_RCPT_SER :" + l, 1);
}
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in STD_GRP");
}
k1 = 3;
break;
case 5: // '\005'
if(i == 5)
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("validate_status:STD_GROUP. srcType WIP, action:" + j);
if(j == 31 || j == 32)
try
{
PSChkWipEtyTyp.setLong(1, l3);
ResultSet resultset = PSChkWipEtyTyp.executeQuery();
if(resultset.next())
i2 = resultset.getInt(1);
resultset.close();
}
catch(Exception exception)
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log(" Ex. in getting wip entity id" + exception);
}
if((j == 31 && l != 1 && l1 != 5L || j == 32 && l1 == 5L) && l2 == -1L)
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Error: Wip entity id is null", 1);
if(i2 != 6 && i2 != 7)
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Error: Not an EAM job and Wip entity id is null", 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in STD_GROUP ");
}
if(TrxUtil.isTraceEnabled)
TrxUtil.log("EAM job and Wip entity id is null, it is ok!!", 1);
}
if(j == 31 && l == 4 && l1 == 5L && l2 != 0L && l3 != 0L && i2 == 1 && l2 != l3 && TrxUtil.restrictRcptSerial)
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Error: This serial was returned through some other job and can not be used for the current job ", 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in STD_GROUP ");
}
}
if(flag)
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("validate_status:STD_GROUP. isIssue true");
if(k != 2 && k != 3 && k != 5)
break;
if(l == 3)
{
k1 = 4;
break;
}
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status in STD_GRP/Issue1 :" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in STD_GRP");
}
if(TrxUtil.isTraceEnabled)
TrxUtil.log("validate_status:STD_GROUP. isIssue false");
if(k == 2 || k == 3)
{
if(i == 5)
{
if(TrxUtil.restrictRcptSerial && j == 27 && l == 4 && l1 != 1L && l1 != 5L)
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status due to RESTRICT_RCPT_SER :" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in STD_GRP");
}
} else
if(TrxUtil.restrictRcptSerial && j == 27 && l == 4 && l1 != 1L)
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status due to RESTRICT_RCPT_SER :" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in STD_GRP");
}
if(TrxUtil.restrictRcptSerial && j == 31 && l == 4 && l1 != 5L)
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status due to RESTRICT_RCPT_SER :" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in STD_GRP");
}
if(l == 1 || l == 4)
{
if(j == 3 && i1 == 6)
k1 = 1;
else
k1 = 3;
break;
}
if(i == 1 && l == 5 && l1 != 8L && l1 != 13L || i == 5 && l == 5 && l1 != 8L && l1 != 13L || i == 1 && l == 7)
{
k1 = 3;
break;
}
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status in STD_GRP/Rcpt1 :" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in STD_GRP");
}
if(k != 5)
break;
if(i == 5)
{
if(TrxUtil.restrictRcptSerial && j == 27 && l == 4 && l1 != 1L && l1 != 5L)
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status due to RESTRICT_RCPT_SER :" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in STD_GRP");
}
} else
if(TrxUtil.restrictRcptSerial && j == 27 && l == 4 && l1 != 1L)
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status due to RESTRICT_RCPT_SER :" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in STD_GRP");
}
if(TrxUtil.restrictRcptSerial && j == 31 && l == 4 && l1 != 5L)
{
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status due to RESTRICT_RCPT_SER :" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in STD_GRP");
}
if(l == 1 || l == 4)
{
if(j == 3 && i1 == 6)
k1 = 1;
else
k1 = 3;
break;
}
if(i == 1 && l == 5 && l1 != 8L && l1 != 13L || i == 5 && l == 5 && l1 != 8L && l1 != 13L || i == 1 && l == 7)
{
k1 = 3;
break;
}
if(TrxUtil.isTraceEnabled)
TrxUtil.log("Invalid status in STD_GRP/Rcpt2 :" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in STD_GRP");
}
return k1;
}
TrxUtil.log("SrcTypeId = " + i + ",ActId=" + j + ",SerCtrl+" + k + ",CurStatus=" + l + ",TrxGroup=" + j1 + " ,LstTxnSrcTypId=" + l1 + ",xfrSerCtrl=" + i1 + ",mOrigWipEntId=" + l2 + ",TrxSrcId=" + l3);
TrxUtil.log("Invalid status in STD_GRP/Rcpt2 :" + l, 1);
TrxUtil.addMessage("INV", "INV_INVALID_SERIAL");
throw new InvTrxException("Invalid status in STD_GRP");
:= 5; --mtl_txn_source_types--生产管理
WIP 投料报 Invalid Serial Number的更多相关文章
- 解决软件卸载时Abstract: "Invalid serial number" xe4
In RAD Studio, Delphi, C++Builder, XE4 there can become a scenario if you try to modify, repair, upg ...
- nginx 报invalid pid number
/opt/ibis/sbin/nginx -c /opt/ibis/conf/nginx.conf 这是make make install之后生成的文件夹和文件. -c c是configure的缩写 ...
- win8(x64)下,重新安装delphi 2007时出现“Invalid Serial Number”,如何解决?
1)在添加删除程序里卸载delphi 2007 2)删除C:\ProgramData\CodeGear 3)删除C:\Program Files (x86)CodeGear 4)删除d:\Progra ...
- PP生产订单创建、下达、报工、收货、投料
转自http://blog.sina.com.cn/s/blog_69fb8eb60102vpjd.html SAP 物料订单创建.下达.报工.收货与投料(ABAP代码) (2015-06-03 22 ...
- Source insight 3572版本安装及An invalid source insight serial number was detected解决方法
Source insight有最新版3572.3.50.0076 下载连接:http://www.sourceinsight.com/down35.html, http://www.sourcei ...
- 【排障】nginx在reload时候报错invalid PID number
nginx在reload时候报错invalid PID number nginx重新加载配置文件时候报错,提示无效的PID: 解决的办法有二: 第一种思路是因为是加载配置文件报的错,所以用-c 选项指 ...
- Source insight 3572安装和版本号An invalid source insight serial number was detected解
Source insight最新版本3572 下载链接:http://www.sourceinsight.com/down35.html, http://www.sourceinsight.com ...
- nginx重启报错:nginx: [error] invalid PID number "" in "/run/nginx.pid"
问题描述:执行 nginx -t 是OK的,然而在执行 nginx -s reload 的时候报错 nginx: [error] invalid PID number “” in “/run/ngin ...
- Centos7.5中Nginx报错:nginx: [error] invalid PID number "" in "/run/nginx.pid" 解决方法
服务器重启之后,执行 nginx -t 是OK的,然而在执行 nginx -s reload 的时候报错 nginx: [error] invalid PID number "" ...
随机推荐
- koa2+webSocket 聊天室
做了一个简单的的聊天室,用来看看 koa和 websocket的使用还是挺好的,已经放到gitHub. https://github.com/zhaowanhua/koa2WebSocket
- monitoring with Prometheus
Prometheus是一款开源的监控工具,支持k8s metrics的数据格式,同时也支持通过k8s api进行服务发现从而实现对自定义的metrics进行监控.下面通过一个示例来介绍如何将Prome ...
- JS基础(二)
一.JS中的循环结构 循环结构的执行步骤 1.声明循环变量: 2.判断循环条件: 3.执行循环体操作: 4.更新循环变量 然后,循环执行2-4,直到条件不成立时,跳出循环. while循环()中的表达 ...
- MySql准备工作
1.linux 下启动mysql 服务 sudo service mysql start 2.登录 mysql -u用户 -p密码 3.显示库 show databases: 4.使用库 use 库名 ...
- Java语言程序设计-Markdown格式作业模板
Markdown格式作业模板如下,大家可以直接复制粘贴使用. 注意:作业中不能只写答案,题目本身也要出现.. # 1. 本章学习总结 你对于本章知识的学习总结 # 2. 书面作业 **Q1 java ...
- ngx.ctx
https://github.com/openresty/lua-nginx-module#ngxctx 要点 生命周期和请求一致 每个请求的ngx.ctx是相互独立的,包括ngx.location. ...
- Android 5.0 调色 Palette调色功能
Palette非常好用,也非常好玩. Palette的作用是从图像中提取突出的颜色,这样我们可以根据提取到的色值把它赋给Toolbar,标题,状态栏等,可以使我们的整个界面色调统一,效果非常好看. P ...
- cassandra 概述
摘要 本篇文章主要是介绍cassandra与其他NoSQL的区别以及自身的特点与应用场景.在关系数据库我们没必要选择数据库,通常需要适配oracle/mysql/sql server/db2 等多种数 ...
- Android输入控件详解
输入控件 输入控件是您的应用用户界面中的交互式组件.Android 提供了多种可在 UI 中使用的控件,如按钮.文本字段.定位栏.复选框.缩放按钮.切换按钮等. 向 UI 中添加输入控件与向 XML ...
- 23 服务的绑定启动Demo3
MainActivity.java package com.example.day23_service_demo3; import com.example.day23_service_demo3.My ...